我正在使用 Python Scrapy 工具从网站中提取数据。我能够抓取数据。现在我想要从特定网站上抓取的项目数。我怎样才能得到刮掉的物品数量?在 Scrapy 中是否有一些内置的类?任何帮助将不胜感激。谢谢..
问问题
2932 次
1 回答
3
基于此处的示例,我解决了同样的问题:
1.编写一个这样的自定义网络服务来计算下载的项目:
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.visitehttp://localhost:6080/item_count
将获取项目爬网。
于 2014-12-26T02:40:52.263 回答