Scrapy-통계 수집

기술

Stats Collector는 Scrapy에서 키 / 값의 형태로 통계를 수집하기 위해 제공하는 기능이며 크롤러 API를 사용하여 액세스합니다 (크롤러는 모든 Scrapy 핵심 구성 요소에 대한 액세스를 제공합니다). 통계 수집기는 스파이더가 열릴 때 통계 수집기가 자동으로 열리고 스파이더가 닫히면 통계 수집기를 닫는 스파이더 당 하나의 통계 테이블을 제공합니다.

일반적인 통계 수집기 사용

다음 코드는 다음을 사용하여 통계 수집기에 액세스합니다. stats 속성.

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

다음 표는 통계 수집기와 함께 사용할 수있는 다양한 옵션을 보여줍니다.

Sr. 아니요 매개 변수 기술
1
stats.set_value('hostname', socket.gethostname())
통계 값을 설정하는 데 사용됩니다.
2
stats.inc_value('customized_count')
통계 값을 증가시킵니다.
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