Xpath介绍以及语法

这篇具有很好参考价值的文章主要介绍了Xpath介绍以及语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Xpath介绍

 XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。 起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。

Xpath语法

祖先节点:父节点的父节点,例如html为所有标签的祖先或父节点。

父节点:为当前节点的上一层节点元素。(直接相邻)

当前节点:当前节点可以有0-n个子节点的元素。

兄弟(同胞节点):跟当前节点同一个父节点的元素。

具体如图所示。

Xpath介绍以及语法

node_name 选取此节点的所有子节点。例如为div或者为tr
/ 选取根节点。(如果字符串开始为/,即为从跟开始)
// 从匹配选择的当前节点中选择文档中的节点。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

1. 根据对应的层级关系去逐层寻找或者是跨层寻找元素(假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!)


element = response_etree.xpath('//div[@xxx="xxx"]')
# 在多个层级目录下去寻找div标签,//表示多个层级目录

element = response_etree.xpath('/div[@xxx="xxx"]') 
# 在当前层级目录下去寻找div标签,/表示在当前层级进行寻找

2.根据属性去定位元素


element = response_etree.xpath('//div[@class="xxxx"]') 
# 根据属性去获取元素

element = response_etree.xpath('//div[@id="xiaoming"]/div[7]//text()')
# 在整个html文本中去寻找id为xiaoming的div下的第7个div的所有层级的文本

3.根据位置定位去定位元素,起始序号为1。

element = response_etree.xpath('//div[7]') 
# 个根据属性去获取html根节点的第七个div元素

4.根据运算表达式去定位元素

常用的只有|(合并节点)

element = response_etree.xpath('//div[4|6]') 
# 个根据属性去获取html根节点的第4和第6个div元素

5. 如果不确定属性的话可以用通配符*代替,但一般不常用,因为有可能获取的元素不为我们想要的元素

* 匹配任何元素节点。
@* 匹配任何属性节点。
node() 匹配任何类型的节点。

 具体例子如图所示。文章来源地址https://www.toymoban.com/news/detail-497884.html

element = response_etree.xpath('//*[@id="xxx"]') 
# 获取带有id="xxx"的任何标签,
element = response_etree.xpath('//div[@*="xxx"]') 
# 获取带有任何"xxx"属性的div标签

Xpath获取文本或属性

text = response_etree.xpath('//div//div//text()')
# text()会获取字符组成一个列表返回,
# //text()表示取当前节点及其子孙节点中的文本内容,/text为返回当前节点的文本内容
text  = response_etree.xpath('//div//div//string(.)')
# string(.)会把当前节点和所有的子孙节点中的文本全部提取出来,组合成一个字符串

到了这里,关于Xpath介绍以及语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue 3 的概述以及 ES 6 基本语法的介绍

    本章首先介绍前端架构模式,然后在此基础上介绍 Vue 及其安装方式,接着介绍 Vue 3的新特性,最后介绍 ECMAScript6 (简称ES 6)的语法。 在学习 Vue.js之前,我们先来了解一下 MVVM (Model-View-ViewModel, 模型-视图-视图模型)模式,它是一种基于前端开发的架构模式。MVVM 最早出现于

    2024年03月22日
    浏览(42)
  • day5 反爬虫和Xpath语法

    day5 反爬虫和Xpath语法 一、request跳过登录 二、selenium跳过登录 (一)、创建浏览器打开需要自动登录的网页 (二)、留足够长的时间让人工完成登录(必须得保证b指向的窗口网页中能看到登录以后的信息) (三)、获取登录成功后的cookie登录信息,保存到本地文件 三、s

    2023年04月09日
    浏览(38)
  • Python中jsonpath库使用,及与xpath语法区别

    jsonpath库使用 pip install jsonpath 基本语法 JSONPath语法元素和对应XPath元素的对比

    2024年02月12日
    浏览(43)
  • stack 、 queue的语法使用及底层实现以及deque的介绍【C++】

    stack是一种容器适配器,具有后进先出,只能从容器的一端进行元素的插入与提取操作 队列是一种容器适配器,具有先进先出,只能从容器的一端插入元素,另一端提取元素 stack和queue在STL中并没有将其划分在容器的行列,而是称为容器适配器 因为stack和queue对其他容器的接口

    2024年02月12日
    浏览(46)
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

    目录 介绍 特点 基本语法 创建 调用 查看 删除  示例  存储过程是 事先经过编译 并 存储在数据库 中的一段 SQL 语句的 集合 ,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想

    2024年02月06日
    浏览(72)
  • 数据结构拓扑排序以及关键路径(出度邻接表)C语言 完整代码

    现实生活中一项工程通常会拆分成多个部分来进行,这些部分有些相互之间有发生的前提关系,还有些可以同时发生且不会互相打扰,但是合理且充分的利用时间来完成项目是一个问题。在项目完成的过程中,那些项目的完成时间被压缩可以压缩工程的总时间,以便于提高整

    2024年02月04日
    浏览(49)
  • C语言内存函数介绍以及实现

    目录 前言 一:内存拷贝函数 (1)memcpy( )函数 (2)memove( )函数 二:内存比较函数 三:内存设置函数 本文介绍的函数的函数声明都在头文件string.h中。 函数声明:void* memcpy(void* dest,const void* src,size_t num) 作用:把一片内存空间的字节拷贝到另一片内存空间。 函数参数的意义: ①dest指

    2024年02月01日
    浏览(38)
  • Go语言网络编程介绍以及案例运用

    1. 基本概念 TCP 和 UDP : Go语言支持TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的、面向连接的通信,而UDP提供无连接的快速数据传输。 并发 : Go语言的并发模型是通过goroutines实现的。每个网络请求都可以在自己的goroutine中处理,实现高效的并发。 Channels : 用于

    2024年01月25日
    浏览(71)
  • 【Python从入门到进阶】28、xpath的安装以及使用

    接上篇《27、Handler处理器使用及代理和Cookie登录实现》 上一篇我们讲解了urllib中Handler处理器的基本使用,以及实现代理访问和Cookie的登录。本篇我们来讲解HTML文档解析中的核心插件xpath的安装及使用。 XPath是由W3C(World Wide Web Consortium)组织发布的。W3C是一个国际性组织,负

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包