xpath解析
xpath是一种在XML文档中査找信息的语言,可用来在XML文档中対元素和属性进行遍万。HTML 属于XML的一个子集。
1、导入
from lxml import etree
# 如果导入报错,则使用以下方式
from lxml import html
etree = html.etree
2、创建xpath对象
# 解析XML文件
et = etree.XML(xml)
# 解析html文件
et = etree.HTML(xml)
3、定位
res = et.xpath("/book") # /表示根节点
res = et.xpath("/book/name") # 表示book的子节点name
res = et.xpath("/book/name/text()") # 提取name中的文本
res = et.xpath("/book//nick") # //表示的是子孙后代,匹配book后代中的所有nick
res = et.xpath("/book/*/book/text()") # *是通配符,表示提取book任意的子节点的nick节点的文本
res = et.xpath("/book/li[2]/a/text()") # 表示取book下第二个li中的a的文本
res = et.xpath("/book/auth/nick[@class='jay']/text()") # []表示属性筛选,@属性=值
res = et.xpath("/book/partner/nick/@id") # 拿到nick里的id属性的值
res = et.xpath("//li")
for li in res:
href = li.xpath("./a/@href")[0] # ./表示当前节点
注:# et.xpath()默认返回的是列表
4、join拼接函数
data = "".join() # ""中放间隔符
# 示例
data = "-".join(["刘备","关羽","张飞"]) # "刘备-关羽-张飞"
标签:xpath,XML,res,nick,book,et,解析,数据
From: https://www.cnblogs.com/dxmstudy/p/17307946.html