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

xpath解析数据的方法

时间:2023-01-09 22:15:23浏览次数:37  
标签:xpath etree 标签 tree text div 解析 方法

 1 功能描述
 2 1.实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中
 3 2.调用etree对象中的XPath表达式实现标签的定位和内容捕获
 4 3.环境安装 pip install lxml
 5 实例化一个etree对象方法有
 6 1.将本地的html文档的源码数据加载到etree对象中
 7 etree.parse(filepath)
 8 2.也可以将互联网上的获取的源代码数据加载到该数据中
 9 etree.HTML(’page_text‘)
10 xpath的解析函数
11 
12 '''
13 import requests
14 from lxml import etree
15 # 新版导入方式
16 # from lxml import html
17 tree = etree.HTML(’page_text‘)
18 #定位到div标签,//表示多个层级
19 r1 = tree.xpath('//div')
20 #属性定位
21 r2 = tree.xpath('//div[@class="song]')
22 #索引定位,定位到div下的第三个p标签
23 r3 = tree.xpath('//div[@class="song]/p[3]')
24 # 取文本方法或属性,/text(),只能取直系标签的文本
25 r4 = tree.xpath('//div[@class="song]//li[5]/p/text()')   #
26 # 取文本方法或属性,//text(),能取该标签下所有本文,包括非直系的标签都可以获取
27 r5 = tree.xpath('//div[@class="song]//li[5]/p//text()')
28 # 取标签的属性,/@attrname。例如/img/@src,返回该标签的属性值,即图片地址
29 r5 = tree.xpath('//div[@class="song]/img/@src')

 

标签:xpath,etree,标签,tree,text,div,解析,方法
From: https://www.cnblogs.com/chengshu1258/p/17038654.html

相关文章

  • Python编程之——推导式解析
    今天这篇文章总结一下Python的推导式,python推导式又叫解析式,是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。列表推导式1)表达式  for ......
  • golang 解析xml 同时解析 attr 和 value
    xml长这样<ModifyKeys><ModifyKeyVKCode="91">LWin</ModifyKey><ModifyKeyVKCode="92">RWin</ModifyKey><ModifyKeyV......
  • ThreadLocal源码解析
    一、ThreadLocal概述ThreadLocal是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的。这样就可以避免资源竞争带来的多线程的问题。但是,这种解......
  • 2.10 JSON数据及解析
    -------------------------------   ---------------------------------------------------- ......
  • mt_Day2 方法
    方法1.重载//参数顺序不同,是重载 publicstaticvoidopen(doublea,intb){}publicstaticvoidopen(intb,doublea){}2.return关键字单独使用return; /......
  • centos7 卸载OPEN JDK安装方法
    系统环境:CentOS7.5软件:jdk-7u65-linux-x64.tar.gz软件下载地址:​​http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html​​检查系统中......
  • 004 python 程序运行日志使用方法
    导入包importlogging.handlersimportdatetimelogger=logging.getLogger("log")日志目录查找并创建ifos.path.isdir('log'):print("当前目录下存在log文......
  • dotnet 警惕使用 StackTrace 加获取方法标记 Attribute 特性在 Release 下被内联
    大家都知道,在dotnet里的Debug下和Release下的一个最大的不同是在Release下开启了代码优化。启用代码优化,将会对生成的IL代码进行优化,同时优化后的IL也会有一些......
  • 欧空局ESALandcover300m.nc格式数据转换成geotif方法
    %ESALandcover300m.nc->.tifmatlabcodesclc;clear;dir='F:\dataset\C3S-LC-L4-LCCS-Map-300m-P1Y-2016-v2.1.1.nc';data=ncread(dir,'lccs_class');%读入数据以及需要......
  • 不可变集合 Stream流和方法引用
    不可变集合如果牌盒里的牌固定为那54张,不能被改变如出牌规则不可变通过of方法获取不可变集合不可变集合是java9提出的新特性在ListMapSet中都定义了许多重载的......