xpath如何获取节点下的所有子孙节点的文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xpath如何获取节点下的所有子孙节点的文本相关的知识,希望对你有一定的参考价值。

参考技术A 可以使用List<WebElement> elements = driver.findElements(By.xpath("//td[contains(text(),'MOON')]"))函数,再获得elements的长度即可

如果它是使用 XPath 在 Scrapy 中的其他节点的父节点,如何从子节点获取文本

【中文标题】如果它是使用 XPath 在 Scrapy 中的其他节点的父节点,如何从子节点获取文本【英文标题】:How to get the text from child nodes if it is parents to other node in Scrapy using XPath 【发布时间】:2014-12-25 04:58:27 【问题描述】:

我面临一个问题,我必须从子节点获取结果,该子节点可能是也可能不是在 scrapy 中使用 Xpath 的其他节点的父节点。考虑这种情况

<h1 class="main">
 <span class="child">data</span>
</h1>

<h1 class="main">
<span class="child">
 <span class="child2">data</span>
</span>
</h1>

我的解决方案是response.xpath(".//h1[@class='main']/span/text()").extract()

【问题讨论】:

【参考方案1】:

使用//text,它将从您的span 中返回列表中的所有文本元素,包括父项和子项:

response.xpath(".//h1[@class='main']/span//text()").extract()

【讨论】:

@PramodBisht,如果我的回答可以帮助您解决问题。请接受我的回答/点赞:) 投票至少需要 15 分,我是初学者,只有 1 分。希望你能理解。 @PramodBisht,感谢 :)【参考方案2】:

你可以使用:

response.xpath("string(.//h1[@class='main']/span)").extract() 甚至response.xpath("string(.//h1[@class='main'])").extract(),如果您关注的是整个标题文本

【讨论】:

以上是关于xpath如何获取节点下的所有子孙节点的文本的主要内容,如果未能解决你的问题,请参考以下文章

如果它是使用 XPath 在 Scrapy 中的其他节点的父节点,如何从子节点获取文本

Python爬虫编程思想(44):XPath实战:节点轴选择

XPath:如何获取两个兄弟节点的连接文本?

如何匹配文本节点然后使用 XPath 跟随父节点

javascript如何获取子孙节点?

在selenium2中,如何获取一个父节点下子节点的个数,所有的子节点的内容都有MOON