Web scraping 停止Scrapy请求管道几分钟,然后重试

Web scraping 停止Scrapy请求管道几分钟,然后重试,web-scraping,scrapy,crawlera,Web Scraping,Scrapy,Crawlera,我使用Scrapy和Crawlera代理抓取单个域,有时由于Crawlera问题(技术中断),我得到407状态码,无法抓取任何站点。是否可以停止请求管道10分钟,然后重新启动spider?明确地说,我不想推迟请求,而是停止一切(可能除了项目处理)10分钟,直到他们解决问题。我正在运行10个并发线程。是的,您可以,有几种方法可以做到这一点,但最明显的方法是简单地插入一些阻塞代码: # middlewares.py class BlockMiddleware: def process_re

我使用Scrapy和Crawlera代理抓取单个域,有时由于Crawlera问题(技术中断),我得到407状态码,无法抓取任何站点。是否可以停止请求管道10分钟,然后重新启动spider?明确地说,我不想推迟请求,而是停止一切(可能除了项目处理)10分钟,直到他们解决问题。我正在运行10个并发线程。

是的,您可以,有几种方法可以做到这一点,但最明显的方法是简单地插入一些阻塞代码:

# 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,
{

谢谢睡眠会阻止所有并发请求还是只阻止一个请求?它会阻止整个程序:)