潭州课堂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 中查队列

 

原文地址:https://www.cnblogs.com/gdwz922/p/9808252.html