我是python和scrapy
的新手。我没有在管道中获取项目数据。在csv
中没有写入任何内容。错误是
DmozSpider' object has no attribute 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,
}
管道方法
process_item()
的定义不正确。错误在指定的参数self, domain, item
中。documentation中的官方描述是:将类
TutorialPipeline
中的方法相应地更改为:试试看项目.get('title')而不是项['title']
相关问题 更多 >
编程相关推荐