鍍金池/ 問答/人工智能  數(shù)據(jù)分析&挖掘  Python  網(wǎng)絡(luò)安全/ 多個(gè)scrapy-redis無法同時(shí)抓取

多個(gè)scrapy-redis無法同時(shí)抓取

同時(shí)開啟兩個(gè)scrapy任務(wù),然后往redispush一個(gè)start_url
但是只有一個(gè)scrapy任務(wù)A在運(yùn)行,當(dāng)把A停止之后,B任務(wù)才會(huì)開始抓取。

原因貌似是因?yàn)閟crapy-redis在運(yùn)行過程中,在redis中并沒有保存requests,只保存了dupefilter,只有ctrl+c停止后,才會(huì)在redis中保存requests

或者在往redis中push一個(gè)start_url,B任務(wù)才會(huì)開始抓取。
這是怎么回事?

clipboard.png

clipboard.png

版本:
python 3.6
Scrapy (1.5.0)
scrapy-redis (0.6.8)

settings.py

SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
SCHEDULER_PERSIST = True
回答
編輯回答
歆久

原因找到了,是因?yàn)?生成next_url太慢,即往redis push之后,立馬被pop了,才導(dǎo)致redis 沒有 requests的序列化,然后導(dǎo)致其他scrapy實(shí)例無法讀取request繼而無法同時(shí)進(jìn)行數(shù)據(jù)抓取。

2017年12月10日 15:31
編輯回答
誮惜顏

那么這個(gè)問題要怎么解決?

2017年2月28日 23:25