def spider_results(spider):
results = []
stats = []
def crawler_results(signal, sender, item, response, spider):
results.append(item)
def crawler_stats(*args,**kwargs):
stats.append(kwargs['sender'].stats.get_stats())
dispatcher.connect(crawler_results, signal=signals.item_scraped)
dispatcher.connect(crawler_stats, signal=signals.spider_closed)
process = CrawlerProcess()
process.crawl(spider) # put our own spider class here
process.start() # the script will block here until the crawling is finished
return results, stats
5条答案
按热度按时间3duebb1j1#
查看stats page from the scrapy documentation。文档说明了Stats Collector,但可能需要将
from scrapy.stats import stats
添加到您的spider代码中,以便能够使用它进行操作。编辑:冒着自吹自擂的风险,如果你是在一个具体的例子之后,我发布了一个关于如何收集失败的URL的答案。
编辑2:经过大量的谷歌搜索,显然没有必要导入。只要使用
self.crawler.stats.set_value()
!628mspwn2#
与scrapy 0.24 -统计我使用它的方式如下:
***super***方法是调用CrawlSpider构造函数来执行自己的代码。
vbkedwbf3#
将其添加到spider类中
dgiusagp4#
如果要在其他用户中使用,可以:
抓取器.抓取器.统计数据.get_stats()
iugsix8n5#
如果你想在作为python对象爬行后得到零碎的统计数据。这可能会有帮助-
希望能有所帮助!