gpt4 book ai didi

XPath 查找子树

转载 作者:行者123 更新时间:2023-12-03 16:11:39 28 4
gpt4 key购买 nike

我正在抓取一个 html 文档,它的结构一直在变化。 CSS 类名甚至会改变,所以我不能依赖它。但是,有一件事永远不会改变,该值始终包含在子树中,如下所示:

<span>
<span>
<span>wanted value</span>
<span></span>wanted value
</span>
</span>

这可以表示为 XPath 表达式吗?

它不应该匹配:
<span>
<span>
<span> 1, one too little </span>
<span> 2 </span>
<span> 3, one too many </span>
<span> 4, two too many </span>
</span>
</span>

我计划使用 lxml for Python 来做到这一点。

最佳答案

如果所需值的位置始终位于跨度的第三级,则 xpath 如下所示:

//span/span/span[1]

当应用于下一个 HTML 文档时:
<html>
<head>
<title>Your Title</title>
</head>
<body>
<div>
<span>
<span>
<span>wanted value</span>
<span></span>
</span>
</span>
</div>
<div>
<span>
<span>
<span>wanted value</span>
<span></span>
</span>
</span>
</div>
</body>
</html>

结果将是:
wanted value
wanted value

编辑

如果您只想要在第三级跨度总数等于 2 时第三级第一个跨度的值,则可以使用以下 XPath:
//span/span[count(span) = 2]/span[1]

关于XPath 查找子树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954614/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com