[英]How to get scrapy xpath output in single item
我提取特定的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.
请帮我解决问题...
您可以执行一些选择。
首先将多个Field
添加到您的项目。 但是我想这不是您想要的。
问题的真正原因是,当您使用xpath('//...').extract()
您会返回结果列表。 一个解决方案是将结果结合在一起:
item["post"] = ' '.join(response.xpath("//div[contains(@id,'node-')]/div//p//text()").extract())
在您的情况下,即使是元素也可能有换行符,因此在这种情况下,我也将摆脱那些新行。 为此,您可以使用map(unicode.strip, ...)
。
是的,map()方法适合我的情况: item["post"]=map(unicode.strip,response.xpath("//div[contains(@id,'node-')]/div//p//text()").extract())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.