scrapy得到包括孩子在内的全文

时间:2014-10-25 16:53:44

标签: python html scrapy

我在文档中有一系列<p>元素,我正在用scrapy进行搜索 一些是: <p><span>bla bla bla</span></p> 要么 <p><span><span>bla bla bla</span><span>second bla bla</span></span></p>

我想用子项提取所有文本(假设我已经有<p的选择器) (第二个例子:有一个字符串bla bla bla second bla bla

2 个答案:

答案 0 :(得分:8)

您可以使用//text()从子节点中提取所有文本

例如:

.//p//text()

答案 1 :(得分:1)

这里有 2 个选项,根据情况可以有各自的好处。

html 示例

<p>Something outside the span<span> and something inside the span</span></p>

选项 01:使用 //text() -> 返回列表

response.xpath('//p//text()').getall()

# returns
>>> ['Something outside the span', ' and something inside the span']

选项 02:使用 string()-> 返回字符串

response.xpath('string(//p)').get()

# returns
>>> 'Something outside the span and something inside the span'