大家好,我遇到了一些我认为可以归因于 xpath 问题的问题。我正在使用 lxml 包中的 html 模块来尝试获取一些数据。我在下面提供了最简化的情况,但请记住,我正在使用的 html 更加丑陋。
<table>
<tr>
<td>
<table>
<tr><td></td></tr>
<tr><td>
<table>
<tr><td><u><b>Header1</b></u></td></tr>
<tr><td>Data</td></tr>
</table>
</td></tr>
</table>
</td></tr>
</table>
我真正想要的是深度嵌套的表格,因为它有标题文本“Header1”。 我正在尝试这样:
from lxml import html
page = '...'
tree = html.fromstring(page)
print tree.xpath('//table[//*[contains(text(), "Header1")]]')
但这给了我所有的表格元素。我只想要包含此文本的一张表。我明白发生了什么,但除了打破一些讨厌的正则表达式之外,我很难弄清楚如何做到这一点。 有什么想法吗?
最佳答案
使用:
//td[text() = 'Header1']/ancestor::table[1]
关于python - 使用lxml html从嵌套元素中提取特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2634931/