我目前正在制作蜘蛛来提取乐器及其数据。
为此,我使用CrawlSpider,最终结果是获取所有这些数据并按型号名称将其放入mongoDB文档中。显然,我还没有完成,并没有达到这一点。
编辑:我能够修复错误并让它运行:但现在爬虫爬行了' 0' 0页面并没有数据返回它输出的csv文件。问题是什么?
以下是我所拥有的:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from scrapy.item import Item
class FenderSpider(CrawlSpider):
name = "fender"
allowed_domains = ["example.org/"]
start_urls = (
'http://www.example.org/fender/?ob=model_asc#results',
)
rules = (
Rule(SgmlLinkExtractor(allow=('item\&pn=*', )), callback='parse_item'),
)
def parse_item(self, response):
item = scrapy.Item()
item['data'] = response.xpath('//span[@class="itemResult"]/text()').extract()
return item
这是我的项目文件:
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class MdbItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
name = 'MdbItem'
Item = scrapy.Field()
# company = scrapy.Field()
# model = scrapy.Field()
# model_name = scrapy.Field()
#instrument_type = scrapy.Field()
# year = scrapy.Field()
# serial = scrapy.Field()
# sku = scrapy.Field()
一切正常,但没有提取数据。我不明白为什么。
有人可以帮忙吗? 我只是学习Python和Scrapy,所以非常非常新手。
答案 0 :(得分:0)
将scrapy.CrawlSpider
替换为已从CrawlSpider
导入的scrapy.contrib.spiders
。