📅  最后修改于: 2023-12-03 15:35:47.803000             🧑  作者: Mango
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-with
和ends-with
函数来选择以特定值开始或结尾的元素。这些函数是Xpath中很常用的功能,掌握它们可以帮助我们更有效地处理Web页面和文本数据。