上一节分析了Crawler的源码,其中关键方法crawl最后会调用ExecutionEngine的open_spider和start方法。本节就结合ExecutionEngine的源码进行详细分析。
open_spider方法:
scrapy/core/engine.py:
@defer.inlineCallbacks def open_spider(self, spider, start_requests=(),
本文深入分析scrapy的ExecutionEngine源码,探讨open_spider方法中CallLaterOnce、reactor.callLater和slot的机制。CallLaterOnce用于确保函数只调用一次,而heartbeart借助LoopingCall每5秒检查并处理新的request。slot维护了请求的生命周期和进行中的请求状态。
上一节分析了Crawler的源码,其中关键方法crawl最后会调用ExecutionEngine的open_spider和start方法。本节就结合ExecutionEngine的源码进行详细分析。
open_spider方法:
scrapy/core/engine.py:
@defer.inlineCallbacks def open_spider(self, spider, start_requests=(),
1299
748
1080

被折叠的 条评论
为什么被折叠?