從scrapy api我知道一個爬蟲包含stats屬性,但是如何從自定義管道訪問它?如何從管道訪問scrapy統計
class MyPipeline(object):
def __init__(self):
self.stats = ???
從scrapy api我知道一個爬蟲包含stats屬性,但是如何從自定義管道訪問它?如何從管道訪問scrapy統計
class MyPipeline(object):
def __init__(self):
self.stats = ???
您的流水線是擴展名,您希望它可以訪問stats
屬性。擴展通過from_crawler(cls, crawler)
方法接收Crawler對象。
總而言之,你應該這樣做
def __init__(self, stats):
self.stats = stats
@classmethod
def from_crawler(cls, crawler):
return cls(crawler.stats)
http://scrapy.readthedocs.org/en/latest/topics/stats.html#topics-stats
也可用統計數據從spider.crawler,例如(V1.1.0):
class ObjPipeline(object):
def process_item(self, item, spider):
spider.crawler.stats.inc_value('scraped_items')
...
謝謝,作品。你知道from_crawler方法的工作原理嗎? – gusridd