从java的webmagic转过来的.webmagic是根据scrapy的设计思路用java实现的,但实际用的过程中发现webmagic没有下载模块,还有一些其他功能也不够全,所以干脆看了看python语法,直接上手scrapy算了.这里简单记录一些问题,算是备忘吧.
爬虫的一些通用技术点
对于反爬虫机制的处理
请求发送的间隔时间设置->拿别人的数据要有节操
setting里
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
注意:download指的是download html,不是download文件.
默认情况下,Scrapy在两个请求间不等待一个固定的值, 而是使用0.5到1.5之间的一个随机值.
感觉就是,你没想到的,框架都帮你想好了.
建立大于2s,不要把人家网站搞的卡住,模拟正常的频率就好.
伪造user-agent,或者动态切换多个user-agent
同样在setting里:
单个:
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'
动态:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,
'example.middlewares.RotateUserAgentMiddleware':400,
//注意这里的路径写法: model名.文件名.class名
}
example.middlewares.RotateUserAgentMiddleware 是自己定义的一个class.详见
http://blog.csdn.net/liyuetao680/article/details/48501481
使用代理-维护一个代理池
登录相关
- 怎么发post
- 验证码怎么搞
- cookie管理
其他
- 断线重连
- 多进程和多线程
需不需要自己实现,还是框架内置?
怎么指定多少个进程,多少线程? - ajax 请求的处理
- 怎么样实现分布式?
- 怎么调试
- 怎么增量式抓取
setting.py 全局配置
http://www.myexception.cn/web/1646523.html
强制停止
两次 ctrl +C
网友评论