1
我正在使用Python Scrapy工具從網站提取數據。我能夠抓取數據。現在我想要從特定網站上刮下的物品的數量。我怎樣才能得到被刮掉的物品的數量? Scrapy中是否有一些內置的類?任何幫助將不勝感激。謝謝..如何獲取由Python Scrapy工具捕獲的項目數量?
我正在使用Python Scrapy工具從網站提取數據。我能夠抓取數據。現在我想要從特定網站上刮下的物品的數量。我怎樣才能得到被刮掉的物品的數量? Scrapy中是否有一些內置的類?任何幫助將不勝感激。謝謝..如何獲取由Python Scrapy工具捕獲的項目數量?
基於示例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
將獲得該項目抓取。
爲什麼不在最後的打印聲明中保留一個計數器。 –
你可能想看看[Scrapy Stats Collection](http://doc.scrapy.org/en/latest/topics/stats.html) –
@pault。我曾看過Scrapy Stats Collection,但無法獲得Scrapy項目的數量。我應該嘗試這樣的方法http://mahmoud.abdel-fattah.net/2012/07/23/scrapy-extension-to- store-spider-statistics-to-postgesql-db /? – kishan