我是python和scrapy
的新手。我没有收到项目数据。 csv
中没有写任何内容。错误是
DmozSpider'对象没有属性 getitem
任何帮助将不胜感激:
蜘蛛文件
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
管道文件
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
项目文件
import scrapy
class TutorialItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field()
price = scrapy.Field()
设置文件
ITEM_PIPELINES = {
'tutorial.pipelines.TutorialPipeline': 300,
}
答案 0 :(得分:1)
管道方法self, domain, item
的定义不正确。该错误位于规定的参数process_item(self, item, spider)
中。 docs中的官方说明是:
TutorialPipeline
将班级def process_item(self, item, spider):
print item['title']
self.csvwriter.writerow([item['title']])
return item
中的方法改为:
example.root/sub_dir
答案 1 :(得分:0)
尝试item.get('title')而不是item ['title']