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
廣告