2015-07-08 10 views
2

Я работаю с циклом прокси в Scrapy, иногда у некоторых прокси есть ошибки, и это останавливает мой паук. Ошибка: «Не удалось открыть CONNECT tunnel " Как мне изменить код, чтобы повторить попытку с другим прокси-сервером в случае этой ошибки?Scrapyd Retry, если Errback в скрученной отсрочке/Не удалось открыть туннель CONNECT Ошибка

Вот код, который должен быть изменен: https://github.com/scrapy/scrapy/blob/master/scrapy/core/downloader/handlers/http11.py

ответ

4

Что-то вроде этого:

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 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^