xpath数据解析

发布时间 2023-04-11 22:10:51作者: 同淋雪

xpath解析

xpath是一种在XML文档中査找信息的语言,可用来在XML文档中対元素和属性进行遍万。HTML 属于XML的一个子集。

image-20230411212537910

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(["刘备","关羽","张飞"])  # "刘备-关羽-张飞"