python - 查找包含字符串的元素的xpath

标签 python html xml xpath lxml

我构建了一个小脚本,用于在页面中找到一些特定的字符串并返回包含该字符串的元素的 xpath。 目的是使用此 xpath 查找具有相同上下文的字符串。

我正在使用这段代码:

import requests
from lxml import html
page = requests.get("http://www.w3schools.com/xpath/")
tree = html.fromstring(page.text)
result = tree.xpath('//*[. = "XML"]')

result[0]返回 <Element b at 0x7f034a08e940>而且我不知道如何找到这个元素的 XPath。

我想要的字符串是:

/html/body/div[4]/div/div[2]/div[2]/div[1]/div/ul/li[2]

最佳答案

您可以使用 getpath()element 获取 xpath,例如:

import requests
from lxml import html

page = requests.get("http://www.w3schools.com/xpath/")
root = html.fromstring(page.text)
tree = root.getroottree()
result = root.xpath('//*[. = "XML"]')
for r in result:
    print(tree.getpath(r))

输出:

/html/body/div[3]/div/ul/li[10]
/html/body/div[3]/div/ul/li[10]/a
/html/body/div[4]/div/div[2]/div[2]/div[1]/div/ul/li[2]
/html/body/div[5]/div/div[6]/h3
/html/body/div[6]/div/div[4]/h3
/html/body/div[7]/div/div[4]/h3

关于python - 查找包含字符串的元素的xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890301/

相关文章:

python - Python 中的基本日志记录 dictConfig

javascript - 有选择地显示背景图像

python - 将 `app.add_route()` 用于 GraphQL 时,如何在 FastAPI 中获取用户身份验证信息?

html - CSS 溢出属性问题

javascript - 为什么 jQuery 更改事件不适用于选择选项?

java - Android:ScrollView 禁用所有按钮和导航

xml - Scala XML 模式匹配,顶级元素

php - 如何轻松地将两个具有相同父节点的 XML 文档合并为一个文档?

python - Python 字节正则表达式中的 $ Windows 换行符

python - 导入错误 : No module named 'google'