在scrapy_redis中,如果需要断点续爬,我们需要在setting配置文件中,添加如下配置:
#----1 设置重复过滤器的模块
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
#----2 设置调取器,scrap_redis中的调度器具备与数据库交互的功能
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
#----3 设置当爬虫结束的时候是否保持redis数据库中的去重集合与任务队列
SCHEDULER_PERSIST = True
#----4 在管道中设置将数据保存到redis数据库中
ITEM_PIPELINES =
# 当开启该管道,该管道将会把数据存到Redis数据库中
'scrapy_redis.pipelines.RedisPipeline': 400,
}
#----5 配置redis数据库
REDIS_URL = "redis://127.0.0.1:6379"
从settings.py中的三个配置来进行分析 分别是:
RedisPipeline # 管道类
RFPDupeFilter # 指纹去重类
Scheduler # 调度器类
SCHEDULER_PERSIST # 是否持久化请求队列和指纹集合