04 - xpath与lxml的应用

目录

1. xpath简介
  • 什么是xpath
  • xpath基本语法结构
2. lxml模块基本用法

课堂笔记

1. xpath简介
1.1 什么是xpath
  • XPath(XML Path Language)是一种XML的查询语言,能在XML的树状模型中对结点进行查找
  • xpath主要通过文档中结点的关键字或属性对结点内容进行定位
  • xpath工具安装
1.2 xpath基本语法结构
语法作用
nodeName选取nodeName下的所有结点
/表示从根节点开始
//选取根节点下的所有结点
@对属性进行筛选
.选取当前结点
..选取当前的上一级结点,即父节点
*通配符,匹配所有结点
@*匹配所有属性结点
node()匹配任何类型结点
text()获取结点下的文本内容
2. lxml模块基本用法
  • lxml 主要作为XML/HTML的解析器,对其文本内容进行解析和提取

  • 导入lxml下的etree模块:from lxml import etree

  • etree类作用:

    • 将XML/HTML文本转换成Element对象
    • 将Element对象转换成字符串或二进制数据
  • 基本用法:

<!-- students.xml文档 -->
<students>
	<student id="cls_01">
    	<name>xxx</name>
        <java>89</java>
        <uml>80</uml>
    </student>
    <student id="cls_02">
    	<name>yyy</name>
        <java>78</java>
        <uml>97</uml>
    </student>
</students>
from lxml import etree
# 打开students.xml文档
with open('students.xml', 'r', encoding='utf-8') as f:
    # 从xml文档中读取内容,并将其转换成Element对象
    html = etree.HTML(f.read())
    # xpath获取根节点下的所有student结点下的age的文本内容
    res = html.xpath('//student/age/text()')
    for i in res:       # 遍历打印所有student下的age文本内容
        print(i)		# 89 78
  • 其他特殊匹配
特殊匹配作用
//student[x]获取根结点下的第x个student结点
//student[last()]获取根结点下最后一个student结点
//student[last()-x]获取根结点下倒数第x+1个student结点
//student[position()<x]获取根结点下第1 - x-1个student结点
//student[@id]获取根结点下所有拥有id属性的student结点
//student[java>80]获取根结点下所有student下的Java成绩大与80的student结点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值