2014-11-04 112 views
-1

我目前正在构建一只蜘蛛来提取乐器及其数据。Scrapy CrawlSpider Not Crawling

为此我使用的是CrawlSpider,最终的结果是将所有这些数据都放入mongoDB文档中。显然,我还没有完成,并没有得到这一点。

编辑:我能够修复错误,并让它运行:但现在爬行器抓取'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

scrapy.CrawlSpider替换为CrawlSpider,其已从scrapy.contrib.spiders导入。

+0

非常感谢,这完全解决了这个问题。但是现在我剩下一个新的 - 抓取工具似乎没有抓取或提取数据。 (忽略以上回答的编辑,这是偶然的并且意味着评论) – page 2014-11-04 21:43:58

+0

@page这是一个单独的问题,应该在单独的问题中解决。你不应该完全编辑这个问题 - 这不是这里的事情。 – alecxe 2014-11-06 16:36:36

+0

好的,我很抱歉。将创建一个新的问题。 – page 2014-11-06 17:22:22