python中,找到网页中指定xpath位置含有指定文字的xpath
时间: 2024-01-19 07:45:28 浏览: 22
你可以使用XPath中的`contains()`函数来查找指定的文字。具体方法如下:
1. 首先使用`lxml`库中的`etree`模块解析网页,得到一个XPath解析器对象。
```python
from lxml import etree
html = """
<html>
<body>
<div>
<p>hello world</p>
<p>hello python</p>
</div>
<div>
<p>goodbye world</p>
<p>goodbye python</p>
</div>
</body>
</html>
"""
parser = etree.HTMLParser()
tree = etree.fromstring(html, parser)
```
2. 使用`contains()`函数查找含有指定文字的XPath位置。例如,查找所有包含单词"hello"的`<p>`标签:
```python
xpath = "//p[contains(text(),'hello')]"
result = tree.xpath(xpath)
for node in result:
print(etree.tostring(node).decode())
```
输出结果如下:
```
<p>hello world</p>
<p>hello python</p>
```
3. 如果要查找的文字不是固定的,可以使用变量来替代。例如,查找包含变量`text`的`<p>`标签:
```python
text = "hello"
xpath = f"//p[contains(text(),'{text}')]"
result = tree.xpath(xpath)
```
注意,在使用变量构造XPath表达式时,需要将字符串用单引号括起来,并使用`f`字符串格式化语法。