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 中查队列

     

  • 相关阅读:
    Leetcode 15
    setjmp和longjmp重复使用的问题
    linux的下两种定时器实现
    linux中的信号处理
    【推荐软件】ack
    《代码大全》阅读心得二
    更换svn diff为vimdiff
    unpack的一点使用问题
    【lua】table是否为空的判断
    vi复制部分字符
  • 原文地址:https://www.cnblogs.com/gdwz922/p/9808252.html
Copyright © 2011-2022 走看看