美文网首页
初见scrapy

初见scrapy

作者: 石野小真人 | 来源:发表于2017-04-06 09:28 被阅读34次

    从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

          本文链接:https://www.haomeiwen.com/subject/vmufattx.html