0

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

4

1 回答 1

1

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

# 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,
{
于 2019-02-16T12:09:03.540 回答