📜  xpath 开始于和结束于 - Python (1)

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

Xpath - Python中的开始于和结束于

Xpath是一种用于在XML或HTML文档中选择元素的语言。在Python中,我们可以使用Xpath来解析和处理Web页面和文档。本文将介绍如何使用Xpath的开始于和结束于等函数来选择和过滤元素。

开始于

为了选择以特定值开始的元素,我们可以使用以下Xpath表达式:

//*[starts-with(@attribute, 'value')]

其中,@attribute是要选择的属性名称,'value'是要查找的值。通配符*表示选择所有的元素。例如,如果我们要选择所有<a>元素中href属性以https开头的链接,可以使用以下代码:

from lxml import html

page = html.fromstring("""
<a href="https://www.example.com/">Example.com</a>
<a href="http://www.python.org/">Python</a>
<a href="https://www.google.com/">Google</a>
<a href="ftp://ftp.gnu.org/">GNU</a>
""")

links = page.xpath("//*[starts-with(@href, 'https')]")

for link in links:
    print(link.text, link.get('href'))

输出:

Example.com https://www.example.com/
Google https://www.google.com/

在上面的代码中,我们首先将HTML代码作为字符串传递给html.fromstring()函数,然后使用starts-with函数选择所有以https开头的<a>元素的href属性,最后打印匹配的元素。

结束于

为了选择以特定值结尾的元素,我们可以使用以下Xpath表达式:

//*[ends-with(@attribute, 'value')]

其中,@attribute是要选择的属性名称,'value'是要查找的值。以下是一个使用ends-with函数选择以.pdf结尾的文件名的示例:

from lxml import html

page = html.fromstring("""
<doc>
    <file>report.docx</file>
    <file>data.xls</file>
    <file>analysis.pdf</file>
    <file>proposal.pdf.bak</file>
</doc>
""")

files = page.xpath("//*[ends-with(text(), '.pdf')]")

for f in files:
    print(f.text)

输出:

analysis.pdf

在上面的代码中,我们选择所有包含以.pdf结尾的文本的元素,然后打印匹配的元素。

总结

本文介绍了如何在Python中使用Xpath的starts-withends-with函数来选择以特定值开始或结尾的元素。这些函数是Xpath中很常用的功能,掌握它们可以帮助我们更有效地处理Web页面和文本数据。