scrapy中如何设置request的重试次数
在使用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]