Scrapy CrawlSpider不爬行

时间:2014-11-04 19:55:13

标签: python html mongodb scrapy web-crawler

我目前正在制作蜘蛛来提取乐器及其数据。

为此,我使用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,所以非常非常新手。

1 个答案:

答案 0 :(得分:0)

scrapy.CrawlSpider替换为已从CrawlSpider导入的scrapy.contrib.spiders