重试如果扭曲延迟/无法打开连接隧道错误



我正在使用Scrapy中的代理循环,有时一些代理有错误,这阻止了我的蜘蛛。错误提示"无法打开连接隧道"。在出现此错误的情况下,如何更改代码以使用另一个代理重试?

下面是需要修改的代码:https://github.com/scrapy/scrapy/blob/master/scrapy/core/downloader/handlers/http11.py

像这样:

from scrapy.core.downloader.handlers.http11 import TunnelError

class RetryMiddleware(RetryMiddleware):
    def process_exception(self, request, exception, spider):
        if ( isinstance(exception, self.EXCEPTIONS_TO_RETRY) or isinstance(exception, TunnelError) ) 
                and 'dont_retry' not in request.meta:
            return self._retry(request, exception, spider)
在settings.py:

DOWNLOADER_MIDDLEWARES = { 
   'myproject.myretry.RetryMiddleware': 200,
   'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': None
}

最新更新