无论出于何种原因,所有项目都作为元组返回。不确定我错过了什么。在所有其他蜘蛛和项目中,它只是一个列表(当我使用extract()时)。
{'acne': (None,),
'function': ([u'\u2027Preservative'],),
'function0': u'\u2027Preservative',
'irritant': (None,),
'name': (u'Potassium Sorbate',),
'safety': (u'3',),
'url': 'http://cosdna.com/eng/383bb7435.html'}
这是我的蜘蛛代码。
def parse(self, response):
inspect_response(response, self)
a = response.xpath('//table//tr')
for i in a:
item = CosdnaExtItem()
item['name'] = i.xpath('./td/a/text()').extract_first(),
item['url'] = i.xpath('./td/a/@href').extract_first(),
item['function'] = i.xpath('.//td[2]/span//text()').extract(),
item['acne'] = i.xpath('.//td[3]/span//text()').extract_first(),
item['irritant'] = i.xpath('.//td[4]/span//text()').extract_first(),
item['safety'] = i.xpath('.//td[5]/div//text()').extract_first(),
yield item
答案 0 :(得分:3)
注意行尾的额外逗号:
item['function'] = i.xpath('.//td[2]/span//text()').extract(),
在Python中
x = y,
与
相同x = (y,)