Python XPath 库的技巧和案例-icode9专业技术文章分享
互联网 2023/3/22 22:50:15
以下是使用 Python XPath 库的技巧和案例[3]:
安装 lxml 库 XPath 需要用到 lxml 库,可以使用 pip 安装。
pip install lxml
创建 etree 对象 etree 对象表示整个 XML 文档,通过解析这个对象来定位元素。
from lxml import etree
html = '''
<html>
<head>
<title>Test</title>
</head>
<body>
<div class="container">
<ul class="list">
<li class="item"><a href="1.html">第1页</a></li>
<li class="item"><a href="2.html">第2页</a></li>
<li class="item"><a href="3.html">第3页</a></li>
<li class="item"><a href="4.html">第4页</a></li>
<li class="item"><a href="5.html">第5页</a></li>
</ul>
</div>
</body>
</html>
'''
# 创建 etree 对象
tree = etree.HTML(html)
使用 xpath 获取元素 xpath 使用路径表达式来选择 XML 文档中的元素。在 lxml 中,可以使用 xpath() 方法来查询元素。
# 选择所有 li 标签
lis = tree.xpath('//li')
print(lis)
# 选择所有 class 为 item 的 li 标签
lis = tree.xpath('//li[@class="item"]')
print(lis)
# 获取文本内容
for li in tree.xpath('//li/a'):
print(li.text)
# 获取标签属性值
link = tree.xpath('//a')[0]
print(link.get('href'))
使用 contains() 方法 contains() 方法可以在属性值中搜索字符串。
# 模糊匹配
lis = tree.xpath('//li[contains(@class, "item")]')
print(lis)
# 搜索 href 属性包含 "1" 的 a 标签
link = tree.xpath('//a[contains(@href, "1")]')
print(link)
使用 text() 方法 text() 可以获取元素直接包含的文本内容。
# 获取第一个 li 标签下的文本内容
text = tree.xpath('//li/text()')[0]
print(text)
使用 parent:: 和 ancestor:: 方法 parent:: 和 ancestor:: 方法可以选择元素的父级和祖先节点。
# 获取每个 li 标签所在的 ul 标签
uls = tree.xpath('//li/parent::*')
print(uls)
# 获取每个 li 标签所在的 div 标签
divs = tree.xpath('//li/ancestor::*[1]')
print(divs)
以上是使用 XPath 库的一些技巧和案例,希望对您有所帮助。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[Python XPath 库的技巧和案例-icode9专业技术文章分享]http://www.zyiz.net/tech/detail-400151.html
- 2023-03-23Pycharm和Python到底啥关系?
- 2023-03-23请问大佬们Python代码中的这个...是啥呀?
- 2023-03-23怎么用Python把左边这种转成右边这种?
- 2023-03-22学习 Python 及其他知识的 7 个最佳 GitHub 存储库-icode9专业技术文章分享
- 2023-03-22好用的python爬虫github库,以及各自优缺点-icode9专业技术文章分享
- 2023-03-22如何使用 ChatGPT4 学习 Python?-icode9专业技术文章分享
- 2023-03-22Python 及其他:扩展您的数据科学编程工具包-icode9专业技术文章分享
- 2023-03-22GitHub 库中,Python爬虫的最受欢迎的几个库的应用场景-icode9专业技术文章分享
- 2023-03-22Python爬虫的从业前景,学习路径-icode9专业技术文章分享
- 2023-03-22Python requests 库的使用技巧-icode9专业技术文章分享