Остановите конвейер запроса Scrapy на несколько минут и повторите попытку - PullRequest
0 голосов
/ 16 февраля 2019

Я очищаю один домен с помощью прокси Scrapy и Crawlera, а иногда из-за проблем с Crawlera (технический перерыв), и я получаю код состояния 407 и не могу очистить ни один сайт.Можно ли остановить конвейер запросов на 10 минут, а затем перезапустить паука?Чтобы было ясно, я не хочу откладывать запрос, но останавливаю все (возможно, кроме обработки элементов) на 10 минут, пока они не решат проблему.У меня запущено 10 одновременных потоков.

1 Ответ

0 голосов
/ 16 февраля 2019

Да, вы можете, есть несколько способов сделать это, но наиболее очевидным было бы просто вставить код блокировки:

# middlewares.py
class BlockMiddleware:

    def process_response(self, response, request):
        if response.status == 407:
            print('beep boop, taking a nap')
            time.sleep(60)

и активировать его:

# settings.py
DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.BlockMiddleware': 100,
{
...