6

我正在使用 scrapy 从网站中提取数据,但 XPath 选择器有问题,假设我有以下 HTML 代码:

<div id="_parent">
    Hi!
    <p>I am a child!</p>
    <span class="someclass">I am a <b>span</b> child!</span>
</div>

我得到了什么:

I am a child
I am a  child!

我应该得到什么:

Hi!
I am a child!
I am a span child!

我正在使用的 XPath 如下: .//div[@id="_parent"]//*/text() 我知道这是因为它不是 #_parent div 的直接子级,但我怎样才能递归地获取所有这些孩子?

4

2 回答 2

11

您可以只使用:.//div[@id="_parent"]//text()获取所选节点的所有文本节点子节点。你可以在这里测试它

于 2013-09-18T02:19:28.710 回答
0

如果你想要一个元素的所有数据(所以,所有的字符串节点),你也可以使用

data(.//div[@id="_parent"])
于 2013-09-18T11:28:42.640 回答