使用 xpath 和 python lxml 来查询 html



我正在将html页面作为字符串读取并使用tree = html.fromstring(data)

我现在想使用 lxml xpath 进行查询。以下是我感兴趣的部分的示例。

<table class="class">
<tbody>
<tr>
<th class="classTh">
Overall
</th>
<td class="classTd">
<span class="classSpan">
GREEN
</span>
</td>
</tr>
</tbody>
</table>

随着电话

xpath = '//table/tbody/tr[th="Overall"]/td/span'
e = tree.xpath(xpath)
for i in e:
print(i.text)

我正在使用 xpath 来获取我需要的数据。但是我无法让 xpath 工作。在任何在线测试器中使用此确切的代码 + xpath 对我有用。

我尝试过使用xpath:

xpath = '//table/tbody/tr[th]/td/span'

这让我得到所有元素,而不是具有正确过滤器值的元素。

xpath ='//table/tbody/tr[td/span]/th'

获取所有筛选器值。

所以我的问题。如何在我的 xpath 中正确应用文本值过滤器?

lxml 中此 xpath 的语法如下:

xpath = "//table/tbody/tr[th[contains(text(), 'Overall')]]/td/span"

这解决了我的问题。

最新更新