如何在跑步时监控scrapy的状态

时间:2014-10-13 09:02:21

标签: scrapy scrapyd

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

2 个答案:

答案 0 :(得分: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()

所以,只需打印出你喜欢的状态。

答案 1 :(得分:0)

还有第三方扩展来监控scrapy状态

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

旧版本的scrapy文档中的

web-service

此项目使用StatcollectorMiddleware将当前请求的统计信息存储到redis。并且还有一个Web服务。