要实现分布式爬虫,需要在settings中做如下设置
这里表示启用scrapy-redis里的去重组件,不实用scrapy默认的去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
使用了scrapy-redis里面的调度器组件,不使用scrapy默认的调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
允许暂停,redis请求的记录不会丢失,不清除Redis队列,可以恢复和暂停
SCHEDULER_PERSIST = True
下面这些是request的队列模式
scrapy-redis默认的请求队列形式(有自己的优先级顺序) 是按照redis的有序集合排序出队列的
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"
队列形式,请求先进先出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderQueue"
使用了栈的形式,请求先进后出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderStack"
.
ITEM_PIPELINES = {
'example.pipelines.ExamplePipeline': 300,
'scrapy_redis.pipelines.RedisPipeline': 400,
}
指定要存储的redis的主机的ip,默认存储在127.0.0.1
REDIS_HOST = 'redis的主机的ip'
定要存储的redis的主机的port,默认6379
REDIS_PORT = '6379'