首页 > 其他分享 >xpath数据解析

xpath数据解析

时间:2023-04-11 22:14:09浏览次数:45  
标签:xpath XML res nick book et 解析 数据

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

标签:xpath,XML,res,nick,book,et,解析,数据
From: https://www.cnblogs.com/dxmstudy/p/17307946.html

相关文章

  • 数据库3.69到3.96例程
    3.69将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。3.70将学生张成民的信息插入到Student表中已经存在在表中3.71插入一条选课记录('200215128','1')3.72对每一个系,求学生的平均年龄,并把结果存入数据库3.73将学生200215121的年龄......
  • sqlalchemy快速插入数据,scoped_session线程安全,加载类上的装饰器,基本增删改查,django中
    今日内容sqlalchemy快速插入数据sqlalchemy是什么orm框架,跟其他web框架没有必然联系,可以独立使用安装,快速使用,执行原生sql创建表和删除表不能创建数据库不能修改字段(增加,删除)使用orm插入第一步:生成engine对象engine=create_engine("mysql+pymysql://[email protected].......
  • SqlSugar-C#版_SeedData(种子数据)
    ///<summary>///导入种子数据///注:批量不可用(指定Entity名时功能可用,通过“classNameSpaces”批量导入时功能不可用)///①DBSeed文件使用json文件保存;///②一张表一个DBSeed文件;///③文件名字与表名保持一致;......
  • var exitFn: Int => Unit = (exitCode: Int) => System.exit(exitCode)解析
    varexitFn:Int=>Unit=(exitCode:Int)=>print(exitCode)上边代码看上去挺费劲的,不过后来稍有所悟,记录于此。varexitFn:Int=>Unit这里定义了一个可变函数exitFn,参数是一个Int类型的值,返回Unit类型的值,这个Unit类型和java中的void的有点像,就是不需要返回数据。那么它......
  • spark stream冷启动处理kafka中积压的数据
    因为首次启动JOB的时候,由于冷启动会造成内存使用太大,为了防止这种情况出现,限制首次处理的数据量spark.streaming.backpressure.enabled=truespark.streaming.backpressure.initialRate=200forexample:#!/bin/shTaskName="funnel"UserName="hadoop"cd`dirname$0`nohupsudo......
  • 52 openEuler搭建PostgreSQL数据库服务器-管理数据库角色
    52openEuler搭建PostgreSQL数据库服务器-管理数据库角色52.1创建角色可以使用CREATEROLE语句或createuser来创建角色。createuser是对CREATEROLE命令的封装,需要在shell界面执行,而不是在数据库界面。CREATEROLErolename[[WITH]option[...]];createuserrolename......
  • 基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
    1.算法描述1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。最常用的径向......
  • 基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
    1.算法描述      1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。......
  • 数据库管理平台archery搭建
    #######################################archery是一款Django+Python+Bootstrap的Web应用搭建archery并不是一件简单的事,要想搭建一个高可用,需要做更多MySQLRedisGolangPythonkeepalived               ##############################......
  • TDSQL 是什么?腾讯推出的分布式数据库 TDSQL 简介
    TDSQL是什么?腾讯推出的分布式数据库TDSQL简介 0BY 董德多 ON 2022年5月12日数据库分布式数据库(TencentDistributedSQL,以下简称TDSQL)是腾讯打造的一款企业级数据库产品,具备强一致高可用、全球部署架构、高SQL兼容度、分布式水平扩展、高性能、完整的分布式事务支......