zoukankan      html  css  js  c++  java
  • Scrapy_redis

    简介

    scrapy_redis是一个基于Redis的Scrapy组件,用于scrapy项目的分布式部署和开发

    你可以启动多个spider对象,互相之间共享有一个redis的request队列,最适合多个域名的广泛内容的爬取

    特点

    分布式爬取

    分布式数据处理

    爬取到的item数据被推送到redis中,这意味着你可以启动尽可能多的item处理程序

    scrapy即插即用

    scrapy调度程序+过滤器,项目管道,base spidre

    安装

    pip install scrapy-redis

    使用

    首先创建scrapy的项目

    在settings修改默认的调度器和过滤

    SCHEDULER = 'scrapy_redis.scheduler.Scheduler'

    DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'

    SCHEDULER_PERSIST = True

    在spider里面修改继承的类RedisSpider,属性redis_key

    常用设置

    # 启用调度将请求存储进redis             SCHEDULER = "scrapy_redis.scheduler.Scheduler"

    # 确保所有spider通过redis共享相同的重复过滤     DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

    # 不清理redis队列,允许暂停/恢复抓取        SCHEDULER_PERSIST = True

    # 指定连接到Redis时要使用的主机和端口       REDIS_HOST = 'localhost'

                               REDIS_PORT = 6379

    redis中存储的数据

    spidername:items          list类型,保存爬虫获取到的数据item内容是json字符串

    spidername:dupefilter        set类型,用于爬虫访问的URL去重,内容是40个字符的url的hash字符串

    spidername:start_urls        list类型,用于接收redisspider启动时的第一个url

    spidername:requests         zset类型,用于存放requests等待调度。内容是requests对象的序列化字符串

  • 相关阅读:
    BZOJ4944 泳池 解题报告
    简短的开始
    树链剖分的一种妙用与一类树链修改单点查询问题的时间复杂度优化——2018ACM陕西邀请赛J题
    三月月考暨省队选拔
    Luogu P1245 电话号码
    JXOJ(基于UOJ)部署日志
    入学考试总结_20190310
    十二月月考之生物总结
    寒假作业完成进度
    discuz在windows下的环境配置遇到的问题总结
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11861818.html
Copyright © 2011-2022 走看看