2013-10-24 70 views
1

我正在使用Python Scrapy工具從網站提取數據。我能夠抓取數據。現在我想要從特定網站上刮下的物品的數量。我怎樣才能得到被刮掉的物品的數量? Scrapy中是否有一些內置的類?任何幫助將不勝感激。謝謝..如何獲取由Python Scrapy工具捕獲的項目數量?

+0

爲什麼不在最後的打印聲明中保留一個計數器。 –

+0

你可能想看看[Scrapy Stats Collection](http://doc.scrapy.org/en/latest/topics/stats.html) –

+0

@pault。我曾看過Scrapy Stats Collection,但無法獲得Scrapy項目的數量。我應該嘗試這樣的方法http://mahmoud.abdel-fattah.net/2012/07/23/scrapy-extension-to- store-spider-statistics-to-postgesql-db /? – kishan

回答

3

基於示例here,我解決了這樣同樣的問題:

1.write自定義Web服務這樣來算下載的項目:

from scrapy.webservice import JsonResource 
from scrapy import signals 
from scrapy.xlib.pydispatch import dispatcher 


class ItemCountResource(JsonResource): 

    ws_name = 'item_count' 

    def __init__(self, crawler, spider_name=None): 
     JsonResource.__init__(self, crawler) 
     self.item_scraped_count = 0 
     dispatcher.connect(self.scraped, signals.item_scraped) 
     self._spider_name = spider_name 
     self.isLeaf = spider_name is not None 

    def scraped(self): 
     self.item_scraped_count += 1 

    def render_GET(self, txrequest): 
     return self.item_scraped_count 

    def getChild(self, name, txrequest): 
     return ItemCountResource(name, self.crawler) 

2.register在settings.py這樣的服務:

WEBSERVICE_RESOURCES = { 
    'path.to.ItemResource.ItemCountResource': 1, 
} 

3.visite http://localhost:6080/item_count將獲得該項目抓取。

相關問題