初见scrapy

从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

清空上次缓存

你可能感兴趣的:(初见scrapy)