在使用scrapy抓取數據的時候使用了代理IP,難免會遇到代理IP失效的情況。
因為對數據完整性要求較高,請問如何設置只要沒有成功的返回response則把任務重新放進Request隊列中去繼續爬取?
可以使用scrapy自帶的
scrapy.downloadermiddlewares.retry.RetryMiddleware
中間件,然后通過這幾個參數進行配置:
RETRY_ENABLED
是否開啟retry
RETRY_TIMES
重試次數,默認是3次
RETRY_HTTP_CODECS
遇到什么http code時需要重試,默認是500,502,503,504,408,其他的,網絡連接超時等問題也會自動retry的
RETRY_HTTP_CODES = [500, 503, 504, 400, 403, 404, 408]