如何获取Python Scrapy工具抓取的项目数量?

时间:2013-10-24 12:21:18

标签: python scrapy

我正在使用Python Scrapy工具从网站中提取数据。我能够刮掉数据。现在我想要从特定网站上删除的项目数。如何获取刮取的项目数?在Scrapy中是否有一些内置类?任何帮助将不胜感激。感谢..

1 个答案:

答案 0 :(得分:3)

基于示例here,我解决了同样的问题:

1.编写这样的自定义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.在settings.py中注册服务,如下所示:

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

3.visite http://localhost:6080/item_count会抓取该项目。