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对象的序列化字符串

  • 相关阅读:
    链家网各城市二手房价格
    mitmproxy 配置
    Python操作APP -- Appium-Python-Client
    Appium连接模拟器
    adb server version (xx) doesn't match this client (xx); killing...
    Appnium 环境搭建
    KeyError: 'xxx does not support field: _id'
    Python执行JS -- PyExecJS库
    Python -- CSV文件读写
    Git的基本使用 -- 分支管理
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11861818.html
Copyright © 2011-2022 走看看