1 有些故事只想说给陌生人听

尚未进行身份认证

为了想做的事,做不想做的事

等级
TA的排名 19w+

头条爬取

#-*-coding:utf-8-*-importrequestsfromurllibimportparse,requestimportrequestsimportosdefget_page(offset):params={'offset':offset,'format':'json','k...

2018-06-15 10:50:21

python日志2018.3.2

importrequestsfromfake_useragentimportUserAgentagent=UserAgent()num=1whilenum<20:url='http://www.kfzj.com.cn/browse/category/%s'%numnum+=1headers={'User...

2018-06-15 10:49:23

布隆去重

费劲吧啦的爬到了数据,在满心欢喜之前还有一关要过,那就是去重是滴,一万条数据重复一千次就只有十条有效数据了不要问我这个咋算的,我不会告诉你,总之这个时候就需要另一个英雄登场了布隆!!!!好吧,不是他,是另一个布隆去重https://github.com/liyaopinner/BloomFilter_imooc下载布隆过滤器,将其中的py_bloomfilter.py放到scrapy_redis包...

2018-06-15 10:47:34

pyspider+MongoDB简单操作

#!/usr/bin/envpython#-*-encoding:utf-8-*-#Createdon2018-03-3009:20:41#Project:IvskyDemofrompyspider.libs.base_handlerimport*classMysqlWirter(object):def__init__(self):...

2018-06-15 10:22:06

scrapy-redis代码实例

#-*-coding:utf-8-*-importscrapyfrom..itemsimportBookListItem,BookDetailItem#引入scrapy_redis中的爬虫类fromscrapy_redis.spidersimportRedisSpider#修改爬虫类继承的父类为RedisSpiderclassYunqiSpider(Redi...

2018-06-15 10:18:15

自己设置代理池

#-*-coding:utf-8-*-importrequestsimportpymysqlfromfake_useragentimportUserAgent#Selector引入fromscrapy.selectorimportSelector'''1.爬虫每次发起请求需要从代理池中提取一个可用代理,如果提取的代理不可用,从代理池中删除2.当代理池中的代...

2018-06-15 10:12:08

scrapy框架写入json数据

#-*-coding:utf-8-*-importscrapyfrom..itemsimportBookItemclassNovelSpider(scrapy.Spider):name='novel'allowed_domains=['readnovel.com']start_urls=['https://www.readnove...

2018-06-15 10:01:41

scrapy爬取网站返回json数据处理

#-*-coding:utf-8-*-importscrapyimportjsonclassNeihanSpider(scrapy.Spider):name='neihan'allowed_domains=['neihanshequ.com']start_urls=['http://neihanshequ.com/bar/1/?is_...

2018-06-15 09:57:14

MongoDB基础操作和pyspider

关系型数据库和非关系数据库的区别:简单来说,关系型数据库可以支持多表联查,回滚等菲关系型数据库,一般来说存储在内存中,以键值对方式存在。查东西比较快frompymongoimportMongoClient#向mongodb中插入数据的类classMongoWriter(object):def__init__(self):#构造对象s...

2018-06-08 17:53:41

django-Redis缓存

http://django-redis-chs.readthedocs.io/zh_CN/latest/参考资料

2018-06-08 17:16:44

线程、进程和协程 概念

把子线程变成主线程中的守护线程,当主线程结束后,子线程也会随之结束,一旦主线程代码执行完毕,程序就结束了如果没有添加守护线程,当主线程执行完毕之后,会等待子线程中的任务执行完成之后,再退出程序defrun(num):#在子线程中执行这个任务print('任务:{}'.format(num))ifnum==1:time.sleep(10)...

2018-06-08 16:57:53

GitHub相关命令

gitinit初始化git仓库gitstatus查看工作的状态gitaddfilename将文件的修改或添加添加到缓存区gitcommit-m"提交描述"将缓存区的修改,提交到版本仓库gitlog查看当前版本下的所有提交日志gitreflog查看所有的git命令历史记录gitreset--hardHEAD^回退到上一个版本 (HEAD^^上上版本...HE...

2018-06-07 18:25:55

微信公众号连接

首先第一步是验证,需要配置验证路由在urls中url(r'^wechat/',wechat)然后在views视图中走验证的逻辑然后这里有一个csrf_token问题。所以需要导入一个包fromdjango.httpimportHttpResponsefromdjango.views.decorators.csrfimportcsrf_exemptfrom.messagesim...

2018-06-05 17:57:34

Nginx负载均衡

Nginx相当于一个服务器,中间件,等等,总之介于客户端和服务器中间的。所以可以做的事很多,比如缓存或者分配。做负载均衡的话分为以下几步:1.在etc/nginx/conf.d下面新建一个nginx.conf文件upstreambackend{ #ip_hash; server127.0.0.1:9701weight=1; server127.0.0.1:9702weight=2;...

2018-06-05 16:29:40

scrapy中pipeline的异步存储

importpymysql'同步写入数据速度比较慢,而爬虫速度比较快,可能导致数据最后写入不到数据库中''''1.引入twisted.enterprise.adbapipymysql.cursors2.在settings中配置数据库连接参数3.创建pipeline,实现from_settings函数,从settings获取数据库连接参数,根据参数创建连接池对象,返回当前pipeli...

2018-06-04 16:30:30

scrapy中的settings设置

1.robots.txt协议ROBOTSTXT_OBEY=False需要激活并修改为FalseDOWNLOAD_DELAY=0.5download_delay需要激活,并设置时间,降低爬取速度COOKIES_ENABLED=False禁用cookie追踪#SPIDER_MIDDLEWARES={#'IvskySpider.middlewares.IvskyspiderSp...

2018-06-04 16:29:57

get请求和post请求

1.get请求的请求数据在URL中,post请求的请求数据在请求体中2.数据长度,get请求有长度限制,post请求的长度限制由服务器决定3.数据安全性,两者都不安全,但post相对安全一些4.应用场景不同,get请求一般用于访问页面,post请求一般用于上传数据response=requests.get("https://www.baidu.com/s",params={...

2018-06-04 16:29:31

scrapy 中间件重写,与selenium结合爬取动态页面

fromscrapy.http.response.htmlimportHtmlResponsefromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptions#自定义中间件classCustomMiddleware(object):defprocess_request(...

2018-06-04 16:29:16

多线程操作

进程,负责维护一个应用程序的启动及运行,一个应用程序的启动至少要保持一个进程,这个进程负责给任务指定县城,通过负责分配内存空间,是一个管理者。一个进程中至少存在一个线程,被称为主线程,除了主线程,还有一些分线程,线程就是用于同时执行多个任务的。线程是执行任务的最小单位,进程和线程是由操作系统来决定如何分配进程和线程。主线程,在进程中是唯一的,一般比较大量数据处理任务不会交给主线程来执行,一旦主线程...

2018-06-04 16:28:52

ubuntu操作

编辑文件vim文件名insert简写为i,插入操作esc退出,然后q,不保存wq保存。一、常用指令1. ls    显示文件或目录2.    -l 列出文件详细信息l(list)3.    -a 列出当前目录下所有文件及目录,包括隐藏的a(all)4. mkdir 创建目录5.    -p 创建目录,若无父目录,则创建p(parent)  6. cd    切换目录7. tou...

2018-06-04 16:27:59

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!