我正在使用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的直接孩子,但我如何以递归方式获得所有孩子呢?
答案 0 :(得分:7)
您可以使用:.//div[@id="_parent"]//text()
来获取所选节点的所有文本节点子节点。 You can test it here
答案 1 :(得分:0)
如果您想要一个元素的所有数据(所以,所有字符串节点),您也可以使用
data(.//div[@id="_parent"])