Scrapy 如何在运行时监控刮擦的状态

Scrapy 如何在运行时监控刮擦的状态,scrapy,scrapyd,Scrapy,Scrapyd,我想知道在scrapy运行时发生了什么,如何监控状态?有两种方法。第一种方法,这里是一个来自官方文件的示例 telnet localhost 6023 >>> est() Execution engine status time()-engine.start_time : 8.62972998619 engine.has_capacity() : False len(engine.downloader.active) : 16 engine.sc

我想知道在scrapy运行时发生了什么,如何监控状态?

有两种方法。第一种方法,这里是一个来自官方文件的示例

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()

因此,只需打印出您喜欢的状态。

还有一个第三方扩展来监控刮擦状态

这个项目曾经是在scrapy建立的,现在它是独立的。 scrapy jsonrc通过JSON-RPC控制和监视正在运行的scrapy web爬虫程序,并具有web服务

在旧版本的粗糙文档中


该项目使用StatcollectorMiddleware来存储对redis的当前请求的状态。还有一个网络服务。

谢谢。公文中有“web服务”,您知道如何启用吗?默认启用。但如果您不确定,可以通过设置WEBSERVICE_ENABLED=True显式启用