scrapy - 如果刮板空闲超过 20 秒,则产生更多请求
问题描述
我想yield
在CrawlSpider
使用Rules
. 我注意到我无法通过在spider_closed
方法中执行此操作来提供更多请求:
self.crawler.engine.crawl(r, self)
我注意到该技术在spider_idle
方法中起作用,但我想等到确保爬网完成后再提供更多请求。
我设置了CLOSESPIDER_TIMEOUT = 30
在触发提供更多请求的过程之前等待 20 秒空闲的代码是什么?有没有更好的办法?
解决方案
如果在新的抓取开始之前之前的抓取已经完全完成非常重要,请考虑使用不同的参数连续运行两个单独的蜘蛛或同一个蜘蛛两次,这些参数决定了它抓取的 URL。请参阅从脚本运行 Scrapy。
如果您真的不需要完成之前的抓取,并且您只是因为某些原因拥有比其他 URL 具有更高优先级的 URL,请考虑改用请求优先级。请参阅Request 类构造函数priority
的参数。
推荐阅读
- python - Google oAuth 2.0 API 身份验证错误:错误 400 - redirect_uri_mismatch(不符合政策)DJANGO APP
- bash - 为什么这些别名在我关闭 git bash 后起作用,但在我尝试 source ~/.bash_profile 时不起作用
- powershell - Powershell 拆分和修剪以删除空格和逗号
- python - 调整python graphviz图中边的宽度
- dialogflow-cx - Dialogflow CX 电话网关 - 提取来电显示
- php - str_replace() 自动用破折号改变点
- r - 在R中,什么是按日期连接具有相同列名和维度的数据框并在匹配列上运行函数的方法
- spring-webflux - NestedClass 测试失败,因为 Spring-Data-Mongo-Reactive 正在关闭 MongoDb 连接(状态应该是:服务器会话池已打开)
- python - 使用 *for* 循环以外的东西
- php - PHP - Docker 中的 LEMP 设置