如何在 Scrapy 里面发送一个延时的请求?

2019-03-22 21:01:57 +08:00
 ghd700

各位大佬,现在的需求是请求失败后,需要在 10 分钟后重新发请求。 既然 scrapy 是基于 twisted 的异步框架,那么如何使用 reactor 的 calllater 函数来发送一个延时的请求?是否有现成的机制,还是说要自己实现往 reactor 里面添加 request

2309 次点击
所在节点    问与答
3 条回复
ghd700
2019-03-22 21:25:48 +08:00
还有一个关于 scrapy 的问题,yield 出去的 request 是怎么被处理的呢?
ghd700
2019-03-23 01:15:12 +08:00
第一个问题已经解决了,使用 scrapy.utils.reactor.CallLaterOnce,稍微封装一下就可以实现
wuyue92tree
2019-03-23 08:53:58 +08:00
直接在 downloadmiddles 里面控制也可以吧,继承 retry,失败了就 sleep 再 return self._retry 对象

至于 requests 处理,yield 之后内部调度处理,到这个请求了,就按你设置的 middles 顺序执行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX