Scrapy - 统计收集



描述

统计收集器是 Scrapy 提供的一个功能,用于以键值对的形式收集统计数据,可以通过爬虫 API 访问它(爬虫提供对所有 Scrapy 核心组件的访问)。每个爬虫都有一个统计收集表,当爬虫启动时,统计收集器会自动打开,当爬虫关闭时,统计收集器会自动关闭。

常见的统计收集器用途

以下代码使用stats属性访问统计收集器。

class ExtensionThatAccessStats(object): 
   def __init__(self, stats): 
      self.stats = stats  
   
   @classmethod 
   def from_crawler(cls, crawler): 
      return cls(crawler.stats)

下表显示了可以使用各种选项与统计收集器进行交互:

序号 参数 描述
1
stats.set_value('hostname', socket.gethostname())
用于设置统计数据的值。
2
stats.inc_value('customized_count')
增加统计数据的值。
3
stats.max_value('max_items_scraped', value)
仅当值大于先前的值时,才设置统计数据的值。
4
stats.min_value('min_free_memory_percent', value)
仅当值小于先前的值时,才设置统计数据的值。
5
stats.get_value('customized_count')
获取统计数据的值。
6
stats.get_stats() {'custom_count': 1, 'start_time': 
datetime.datetime(2009, 7, 14, 21, 47, 28, 977139)} 
获取所有统计数据。

可用的统计收集器

Scrapy 提供了不同类型的统计收集器,可以通过STATS_CLASS设置访问它们。

MemoryStatsCollector

这是默认的统计收集器,它维护每个用于抓取的爬虫的统计数据,并将数据存储在内存中。

class scrapy.statscollectors.MemoryStatsCollector

DummyStatsCollector

这个统计收集器非常高效,什么也不做。可以通过STATS_CLASS设置来使用它,并且可以用来禁用统计收集以提高性能。

class scrapy.statscollectors.DummyStatsCollector
广告