pyspider 监控控40多个网站,要每五分钟这些url都跑一遍,是用auto_recrawl这个参数对么?

  1. 40多个网站,每个网站现在大概有几千url需要监控,现在我在需要监控的页面加上了auto_recrawl=true参数,
    但是发现效果并不好,每个网站的一部分需要监控的url能够五分钟跑完,剩下的可能很久都跑不到,有可能几天,几小时都跑不到。

  2. 但我发现使用every 不加auto_recrawl 参数,这个五分钟监控时间就无法保证。
    大家有什么好办法,万分感谢

阅读 4.2k
2 个回答

如果你这几千 url 是固定的,不需要发现的,可以毎5分钟触发 on_start, 在 on_start 里面发起调度。如果需要发现,用 auto_recrawl 是可以的。
retry 建议设置小于等于 1,或者设置 retry_delay 小于 5 分钟,不然请求失败会延迟重试,延迟有可能大于5分钟。
最后要注意你的请求速度,是不是满足5分钟抓完这几千 url,如果不能,抓取顺序是没有保证的,会有可能有 url 一直轮不到。

5分钟跑不完当然就会有跑不到的了,加速度、加fetcher,直到能保证5分钟能妥妥跑完一圈为止。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题