我正在提取一个特定的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.
请帮我解决问题......
答案 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())