2014-11-04 4 views
-1

현재 악기와 데이터를 추출하는 스파이더를 만들고 있습니다.Scroll CrawlSpider Not Crawling

이 경우 CrawlSpider를 사용하고 있으며이 데이터를 모두 가져 와서 모델 이름별로 mongoDB 문서에 배치해야합니다. 나는 분명히 끝내지 않았으며,이 시점에 이르지 못했습니다.

EDIT : 오류를 수정하여 실행되도록 만들었지 만 이제는 크롤러가 '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

에서 이미 가져온 CrawlSpider으로 scrapy.CrawlSpider을 대체하십시오.

+0

대단히 감사합니다.이 문제가 완전히 수정되었습니다. 그러나 이제는 새로운 크롤러가 크롤링하거나 데이터를 추출하지 않는 것으로 보입니다. (위의 대답에 대한 편집을 무시하십시오. 우발적이며 의견이 될 수 있습니다.) – page

+0

@page이 문제는 별도의 문제이므로 별도의 질문으로 해결해야합니다. 질문을 완전히 수정하지 말았어야합니다. 여기가 어떻게 작동하는지가 아닙니다. – alecxe

+0

오케이, 사과드립니다. 새로운 질문을 만듭니다. – page