如何在单个项目中获得scrapy xpath输出

时间:2015-09-15 11:15:15

标签: python xpath scrapy

我正在提取一个特定的xpath表达式:

#item["post"]=response.xpath("//div[contains(@id,'node-')]/div//p//text()").extract()

当我以.csv格式导出文件时,内容将分开:

Hi, Steps:,
1. Enabled calendar module.,
2. Enabled date api, date pop up, date views.

我想在一行中导出帖子,如下所示:

Hi, Steps:, 1. Enabled calendar module., 2. Enabled date api, date pop up, date views.

请帮我解决问题......

2 个答案:

答案 0 :(得分:1)

你可以做一些选择。

首先在您的商品中添加多个Field。但我猜这不是你想要的。

问题的真正原因是当您使用xpath('//...').extract()时,您会收到结果列表。解决方案是将结果加在一起:

item["post"] = ' '.join(response.xpath("//div[contains(@id,'node-')]/div//p//text()").extract())

在你的情况下,甚至元素都有一个换行符,所以如果是这样我也会摆脱这些新行。为此,您可以使用map(unicode.strip, ...)

答案 1 :(得分:0)

是的,map()方法适用于我的场景:item["post"]=map(unicode.strip,response.xpath("//div[contains(@id,'node-')]/div//p//text()").extract())