2014-11-04 111 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