首页 > 解决方案 > 如果刮板空闲超过 20 秒,则产生更多请求

问题描述

我想yieldCrawlSpider使用Rules. 我注意到我无法通过在spider_closed方法中执行此操作来提供更多请求: self.crawler.engine.crawl(r, self) 我注意到该技术在spider_idle方法中起作用,但我想等到确保爬网完成后再提供更多请求。

我设置了CLOSESPIDER_TIMEOUT = 30 在触发提供更多请求的过程之前等待 20 秒空闲的代码是什么?有没有更好的办法?

标签: scrapy

解决方案


如果在新的抓取开始之前之前的抓取已经完全完成非常重要,请考虑使用不同的参数连续运行两个单独的蜘蛛或同一个蜘蛛两次,这些参数决定了它抓取的 URL。请参阅从脚本运行 Scrapy

如果您真的不需要完成之前的抓取,并且您只是因为某些原因拥有比其他 URL 具有更高优先级的 URL,请考虑改用请求优先级。请参阅Request 类构造函数priority的参数。


推荐阅读