首页 > 其他分享 >xpath解析

xpath解析

时间:2022-11-19 22:23:23浏览次数:53  
标签:xpath etree tree item div 解析 class

---安装---

pip intall lxml

 

xpath用法步骤

1.实例化一个etree对象,且需要将被解析的页面数据加载到该对象中

--将本地的html文件加载到etree中

  etree.parse(filepath)

--将爬取到的源码数据加载到etree中

  etree.HTML('page_text')

2.调用etree对象中的xpath方法结合xpath表达式实现标签定位和数据获取

 

xpath表达式

xpath表达式:
/表示从根节点开始定位,跟linux文件系统类似,表示的是一个层级
//表示多个层级
    tree = etree.parse(filepath)
    tree.xpath('/html/head/title')      返回一个或者多个element对象的列表
    tree.xpath('/html/body/div')
    tree.xpath('/html//div')        #其中//表示多个层级
    属性定位:tree.xpath('//div[@class="item"]')        #定位具体某一个类的div
    索引定位:tree.xpath('//div[@class="item"]/p[3]')    #定位到class = item的div下的第三个p标签,索引是从1开始的

    获取标签内的文本数据
    tree.xpath('//div[@class="item"]/p[3]/text()')      #返回一个列表
    获取标签的属性值
    tree.xpath('//div[@class="item"]/img/@src')      #返回一个列表,即@attrName、

    还可以使用其他符号 | 表示或者
    tree.xpath('//div[@class="item"]/p[3]/text() | //div[@class="item"]/img/@src')     

 

标签:xpath,etree,tree,item,div,解析,class
From: https://www.cnblogs.com/powfu/p/16907350.html

相关文章

  • python(牛客)试题解析2 - 中等
    导航一、NC192二叉树的后序遍历二、NC117 合并二叉树三、求长度最长的的连续子序列使他们的和等于sum四、按顺序取出固定长度内容并合并两个数组为一个新数组五、输......
  • ROS应用层通信协议解析
    参考:http://wiki.ros.org/ROS/Master_APIhttp://wiki.ros.org/ROS/ConnectionHeader说明ROS本质上就是一个松耦合的通信框架,通信模式包括:远程调用(service-client)、订阅......
  • commonjs规范 require 函数解析
    functionrequire(modulePath){//1.根据传入的模块路径得到模块完整的绝对路径constmoduleId=getModuleId(modulePath)//2.判断缓存if(cache[mo......
  • 全面解析Android之ANR日志
    不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(简称ANR)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。本文将带你......
  • MySQL 源码解读之-语法解析(四)
    MySQL源码解读之-语法解析(四)在上篇文章中,我们分析了一条sql语句select*frombank;警告bison语法解析器(MYSQLparser函数)生成的AST树的结构,如下图所示:mysql需......
  • python(牛客)试题解析1 - 简单
    导航:一、NC103反转字符串二、NC141判断是否为回文字符串三、NC151最大公约数四、NC65斐波那契数列五、字符按排序后查看第k个最小的字母六、数组内取出下标相同......
  • Java使用SAX解析xml文档
    步骤1.创建解析工厂2.从工厂中获取解析器3.自行编写处理器:继承DefaultHandler,重写相关方法。4.加载自己的处理器5.开始解析6.读取数据例子读取此xml文件内容。创......
  • 箭头函数与普通函数的区别、浏览器解析html的过程
    箭头函数与普通函数1.书写方式不同,箭头函数使用箭头定义,普通函数使用关键字 2.this指向不同:箭头:2.11箭头函数本身没有prototype,所以没有自己的this,2.21它的this只能......
  • vba解析JSON字符串
    vba解析JSON字符串vba解析JSON大概有4种方法1、htmlfile对象解析json(支持32位和64位系统)思路:创建htmlfile对象,使用write方法写入浏览器版本,创建parentwindow对象,在使用e......
  • kubernetes_CoreDNS全解析
    一、前言kubernetesCoreDNS是kube-system命令空间里面的一个Pod,用于域名解析。kubernetes自带三个命名空间(用kubeadm安装的Kubernetes集群):defaultkube-public......