我正在使用lxml进行 HTML 屏幕抓取,并且需要通过 选择一个元素text(),其方式类似于使用纯 XML 在另一个问题上所做的操作,但是无论发生什么情况,我都会收到无效谓词错误。我将其简化为以下示例:
import lxml.html
sample_html = "<div><h2>test string</h2><h2>other string</h2></div>"
sample_tree = lxml.html.fromstring(sample_html)
sample_tree.findall('.//h2[text()="test string"]')
Run Code Online (Sandbox Code Playgroud)
虽然这应该是有效的,但我不断收到错误:
File "<string>", line unknown
SyntaxError: invalid predicate
Run Code Online (Sandbox Code Playgroud)
text()有关如何在解析 HTML 时正确让 lxml 选择元素的任何提示吗?
表达式本身是有效的,但你必须使用该.xpath()方法:
sample_tree.xpath('.//h2[text()="text string"]')
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下您也可以使用以下.内容来代替text():
.//h2[. = "text string"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |