📜  xpath span 包含文本 (1)

📅  最后修改于: 2023-12-03 15:35:47.763000             🧑  作者: Mango

使用 XPath 获取包含特定文本的 span 元素

在使用 XPath 查找元素时,我们可能需要查找包含特定文本的 span 元素。这时我们可以使用 XPath 中的 contains 函数来实现。

contains 函数

contains 函数用于判断一个字符串中是否包含另一个字符串。

语法如下:

contains(字符串1, 字符串2)

其中,字符串1为需要判断的字符串,字符串2为需要查找的字符串。

如果字符串1中包含字符串2,则返回 true;否则返回 false

使用 contains 查找包含文本的 span 元素

我们可以结合 contains 函数和标签名来查找包含特定文本的 span 元素。

例如,我们要查找页面中包含文本“Hello World”的 span 元素,可以使用以下 XPath 表达式:

//span[contains(text(),"Hello World")]

其中,//span 表示查找所有的 span 元素,contains(text(),"Hello World") 表示判断该 span 元素中是否包含“Hello World”文本。

示例代码

Python 代码示例:

from lxml import etree

# 构建 Element 对象
html = """
<html>
    <body>
        <span>Hello World!</span>
        <span>Hi, Python!</span>
        <span>Greetings!</span>
    </body>
</html>
"""
tree = etree.HTML(html)

# 查找包含"Hello World"文本的 span 元素
spans = tree.xpath('//span[contains(text(),"Hello World")]')
for span in spans:
    print(etree.tostring(span, encoding="utf-8").decode())

输出结果:

<span>Hello World!</span>
总结

通过本文,我们学习了如何使用 XPath 的 contains 函数和标签名来查找页面中包含特定文本的 span 元素。希望对大家有帮助!