0
我正在读html页面作为一个字符串,并使用tree = html.fromstring(data)
与蟒蛇LXML使用XPath查询HTML
我现在想用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中应用文本值过滤器?
当您使用在线XPath测试工具进行尝试时,您可以使用已执行的JavaScript处理网页,而您的表可能会动态生成,HTTP请求,urllib等HTTP库只能为您提供页面源而不执行JavaScript – Andersson
因为2个最新的xpath查询用于确认我查询的数据是正确的,所以我不认为这会对数据本身造成任何问题。相反,我的印象是它的查询问题。或者我错过了这一点? :) – Martin