zoukankan      html  css  js  c++  java
  • 潭州课堂25班:Ph201805201 爬虫高级 第十课 Scrapy-redis分布 (课堂笔记)

    利用 redis 数据库,做 request 队列,去重,多台数据共享,

    scrapy 调度 基于文件每户,默认只能在单机运行,

    scrapy-redis 默认把数据放到 redis 中,实现数据共享,

    安装: pip install scrapy-redis

    命令与 scrapy 没有不同

    在该文件下导入 scrapy_redis

     

    在配置文件中添加内容

    1(必须). 使用了scrapy_redis的去重组件,在redis数据库里做去重

    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

    2(必须). 使用了scrapy_redis的调度器,在redis里分配请求

    SCHEDULER = "scrapy_redis.scheduler.Scheduler"

    3(可选). 在redis中保持scrapy-redis用到的各个队列,从而True允许暂停和暂停后恢复,也就是不清理redis queues

    SCHEDULER_PERSIST = True

    4(必须). 通过配置RedisPipeline将item写入key为 spider.name : items 的redis的list中,供后面的分布式处理item

    这个已经由 scrapy-redis 实现,不需要我们写代码,直接使用即可

    ITEM_PIPELINES = {

        'scrapy_redis.pipelines.RedisPipeline': 100

    }

    5(必须). 指定redis数据库的连接参数

    REDIS_HOST = '127.0.0.1'

    REDIS_PORT = 6379

    这里要改下

    改成

    当选择  redis_key 启动时,会从 redis 中获取 url  

    所以在 redis 中用到下面这个命令,才会启动

     redis 中查队列

     

  • 相关阅读:
    Android Fragment(一)
    Android github上的好的开源项目汇总
    Android ScrollView 嵌套ListView的替代方案
    Android cannot be cast to android.app.Fragment
    js css加时间戳
    WPF无边框实现拖动效果
    分析器错误消息: 未能加载类型
    微信红包功能(含示例demo)
    ABP缓存示例
    微信白名单配置与检验
  • 原文地址:https://www.cnblogs.com/gdwz922/p/9808252.html
Copyright © 2011-2022 走看看