2016-04-07 19 views
0

Python ve scrapy numaralı ürünlere yeniyim. Boru hattında ürün verileri almıyorum. csv'da hiçbir şey yazılmıyor. HataÜrün boru hattına ulaşmıyor

DmozSpider' nesne Herhangi bir yardım takdir edilecektir

hiçbir özellik getItem sahiptir:

örümcek dosyasını

import scrapy 
import sys 
import os 
from tutorial.items import TutorialItem 
from pprint import pprint 
class DmozSpider(scrapy.Spider): 
    name = "myspider" 
    allowed_domains = ["www.xyz.co.id"] 
    start_urls = ["http://www.xyz.co.id/search?q=abc"] 

    def parse(self, response): 
     var = response.xpath("//a[@class='img']/@href").extract()[0] 
     item = TutorialItem() 
     item['title'] = var 
     yield item 

boru hattı dosya

import csv 

class TutorialPipeline(object): 

    def __init__(self): 
     self.csvwriter = csv.writer(open('items.csv', 'wb')) 

    def process_item(self, domain, item): 
     print item['title'] 
     self.csvwriter.writerow([item['title']]) 
     return item 

ürün

import scrapy 

class TutorialItem(scrapy.Item): 
    title = scrapy.Field() 
    link = scrapy.Field() 
    desc = scrapy.Field() 
    price = scrapy.Field() 

Ayarlar process_item() olduğunu

  ITEM_PIPELINES = { 
     'tutorial.pipelines.TutorialPipeline': 300, 
    } 
+0

tam traceback soruyla güncellemek olabilir mi? –

cevap

1

tanımını dosya dosya yanlış. Hata, belirtilen parametreler self, domain, item10'dur. documentation resmi açıklamasıdır: Sınıfınızdaki TutorialPipeline yılında

process_item(self, item, spider) 

değiştirme yöntemi accrodingly için:

def process_item(self, item, spider): 
    print item['title'] 
    self.csvwriter.writerow([item['title']]) 
    return item 
+0

çekicilik gibi çalışır, çok teşekkürler. – DevOps

0

item.get ('title') yerine öğeyi deneyin [ 'başlığı'] sizin boru hattı yönteminin

İlgili konular