XPath递归子选择

时间:2013-09-17 21:24:48

标签: html xpath scrapy scraper

我正在使用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的直接孩子,但我如何以递归方式获得所有孩子呢?

2 个答案:

答案 0 :(得分:7)

您可以使用:.//div[@id="_parent"]//text()来获取所选节点的所有文本节点子节点。 You can test it here

答案 1 :(得分:0)

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

data(.//div[@id="_parent"])