安装第三方库
pip install scrapy-redis-sentinel
修改 setting.py文件
ITEM_PIPELINES = {
'scrapy_redis_sentinel.pipelines.RedisPipeline': 543,
}# Bloomfilter 配置
# 使用的哈希函数数,默认为 6
BLOOMFILTER_HASH_NUMBER = 6# Bloomfilter 使用的 Redis 内存位,30 表示 2 ^ 30 = 128MB,默认为 30 (2 ^ 22 = 1MB 可去重 130W URL)
BLOOMFILTER_BIT = 30# 是否开启去重调试模式 默认为 False 关闭
DUPEFILTER_DEBUG = False# Redis 集群地址
REDIS_MASTER_NODES = [
{"host": "192.168.56.30", "port": "9000"},
{"host": "192.168.56.31", "port": "9000"},
{"host": "192.168.56.32", "port": "9000"},
]# REDIS_CLUSTER_PARAMS 集群模式配置参数
REDIS_CLUSTER_PARAMS= {
# "password": "password"
}# scrapy其他参数
# 在 redis 中保持 scrapy-redis 用到的各个队列,从而允许暂停和暂停后恢复,也就是不清理 redis queues
SCHEDULER_PERSIST = True
# 调度队列
SCHEDULER = "scrapy_redis_sentinel.scheduler.Scheduler"
# 去重
DUPEFILTER_CLASS = "scrapy_redis_sentinel.dupefilter.RFPDupeFilter"# 指定排序爬取地址时使用的队列
# 默认的 按优先级排序( Scrapy 默认),由 sorted set 实现的一种非 FIFO、LIFO 方式。
SCHEDULER_QUEUE_CLASS = 'scrapy_redis_sentinel.queue.SpiderPriorityQueue'
# 可选的 按先进先出排序(FIFO)
# SCHEDULER_QUEUE_CLASS = 'scrapy_redis_sentinel.queue.SpiderStack'
# 可选的 按后进先出排序(LIFO)
# SCHEDULER_QUEUE_CLASS = 'scrapy_redis_sentinel.queue.SpiderStack'
修改spider
from scrapy_redis_sentinel.spiders import RedisSpider
class scrapy_spider(RedisSpider):
......
Redis集群,可以看我的另一篇博客Redis5.0.7集群搭建
来源:CSDN
作者:pcengineercn
链接:https://blog.csdn.net/pcengineercn/article/details/104502846