Xpath的使用

简介: 简单使用

Xpath即是XML路径语言,用来在XML文档中查询信息,也适用于HTML文档的搜索。

Xpath概览

Xpath的选择功能十分强大,它提供了非常简介明了的路径选择表达式,用于字符串,数字,时间的匹配。

Xpath常用规则

nodename 选取此节点的所有子节点
/ 从当前结点选取直接结点
// 从当前结点选取子孙结点
@ 选取属性
列举一个Xpath的一个常用匹配规则, 如//title[@lang='eng'],代表着所有名称为title,同时属性为lang的值的eng的结点。

Xpath的安装

简单安装pip3 install lxml

基本使用

from lxml import etree
text="""


  • """

    导入lxml的etree模块,声明一段HTML文本,接着调用类进行初始化,成功构造出一个Xpath解析对象,且

    HTML文本中的最后一个li结点是没有闭合的,而etree模块则可以自动修正HTML文本。

    之后调用tostring方法既可以输出修正过后的HTML文本,但是结果为bytes类型,需要用decode方法来对其进行

    转化成str类型

    html=etree.HTML(text)

    result=etree.tostring(html)
    print(result.decode('utf-8'))

    所有结点

    html=etree.parse('test.html',etree.HTMLParser())
    result=html.xpath('//*')
    print(result)

相关文章
|
缓存 移动开发 关系型数据库
Linux 内存 占用较高问题排查
Linux 内存 占用较高问题排查
662 2
|
算法 安全 Java
CobaltStrike windows7 无法上线
CobaltStrike windows7 无法上线
510 0
|
数据采集 Python
数据爬取技术进阶:从表单提交到页面点击的实现
本文介绍了如何使用 Python 和代理 IP 技术,从表单提交到页面点击,实现动态网页的数据爬取。以百度贴吧为例,详细讲解了登录、发帖和数据采集的实现流程,并提供了完整的代码示例。通过代理 IP 确保数据获取的稳定性和安全性。
420 3
|
8月前
|
存储 缓存 Java
JUC并发—3.volatile和synchronized原理
本文介绍了volatile关键字的使用、主内存和CPU的缓存模型、CPU高速缓存的数据不一致问题、总线锁和缓存锁及MESI缓存一致性协议、Java的内存模型JMM、JMM如何处理并发中的原子性可见性有序性、volatile如何保证可见性、volatile为什么无法保证原子性、volatile如何保证有序性、volatile的原理(Lock前缀指令 + 内存屏障)、双重检查单例模式的volatile优化、基于volatile优化微服务的优雅关闭机制、优化微服务存活状态检查机制等 14.i++的多线程安全问题演示 1
|
9月前
|
监控 搜索推荐 Linux
top 与 htop 实时监控
`top` 和 `htop` 是 Linux 系统中常用的实时监控工具。`top` 命令默认每 3 秒刷新一次,显示系统整体概览和进程列表,支持基本的进程管理操作。`htop` 则提供更友好的界面,带有彩色条形图、鼠标支持和更多交互功能,如进程搜索、优先级调整等。两者都适用于监控系统资源和管理进程,但 `htop` 功能更丰富,用户体验更好,适合复杂场景。
264 8
|
11月前
|
监控 安全 网络协议
永久免费SSL证书教程—自动续签
要实现免费SSL证书的自动续签,选择合适的证书颁发机构(CA)至关重要。推荐使用JoySSL,填写注册码230922可获得免费且支持自动续签的SSL证书。申请步骤包括注册账户、选择证书类型、提交申请、验证域名所有权及安装证书。配置自动续签需安装续签工具、生成密钥和CSR,并设置续签参数。定期检查证书状态、备份证书和密钥,确保续签顺利进行。注意CA机构的政策和服务条款变化,以保持证书的有效性。
|
C++ 计算机视觉
Opencv(C++)系列学习---读取视频文件和打开摄像头
Opencv(C++)系列学习---读取视频文件和打开摄像头
834 0
|
网络架构
flutter推荐路由器插件:go_router
flutter推荐路由器插件:go_router
594 0
|
XML Java 数据格式
|
前端开发
React Native 加载base64图片
const {base64Image } = this.props; let baseImg=`data:image/png;base64,${base64Image}`;
3049 0