我想知道scrapy运行时发生了什么,我如何监控状态?
问问题
1804 次
2 回答
3
有两种方法。第一种方法,这里是官方文档中的一个例子。
telnet localhost 6023
>>> est()
Execution engine status
time()-engine.start_time : 8.62972998619
engine.has_capacity() : False
len(engine.downloader.active) : 16
engine.scraper.is_idle() : False
engine.spider.name : followall
engine.spider_is_idle(engine.spider) : False
engine.slot.closing : False
len(engine.slot.inprogress) : 16
len(engine.slot.scheduler.dqs or []) : 0
len(engine.slot.scheduler.mqs) : 92
len(engine.scraper.slot.queue) : 0
len(engine.scraper.slot.active) : 0
engine.scraper.slot.active_size : 0
engine.scraper.slot.itemproc_size : 0
engine.scraper.slot.needs_backout() : False
更多信息请参考官方文档。
第二种方法似乎更简单一些。您可以通过以下方法获取爬虫的状态:
self.crawler.stats.get_stats()
or
spider.crawler.stats.get_stats()
因此,只需根据需要打印出状态即可。
于 2014-10-13T12:22:38.130 回答
0
还有一个第三方扩展来监控scrapy状态
这个项目曾经是在scrapy中构建的,现在它是独立的。scrapy-jsonrc 通过 JSON-RPC 控制和监控正在运行的 Scrapy 网络爬虫,并具有网络服务。
该项目使用 StatcollectorMiddleware 存储当前对 redis 的请求的统计信息。并且还有一个网络服务。
于 2018-04-14T18:49:30.423 回答