Xpath语法学习记录
高级参考:https://blog.csdn.net/wudaoshihun/article/details/82226122
举例:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 </head>
7 <body>
8 <div class="bookstore">
9 <div class="book">
10 <p class="title">张三</p>
11 <p class="price">29.9</p>
12 <p><a href="https://www.baidu.com">百度一下</a></p>
13
14 </div>
15 <div class="book1">
16 <p class="title">李四</p>
17 <p class="price">36.9</p>
18 <p><a href="https://www.jd.com">京东</a></p>
19
20 </div>
21 <div class="book2">
22 <p class="title1" a="a">王五</p>
23 <p class="price1">30</p>
24 <p><a href="https://www.taobao.com">淘宝</a></p>
25 </div>
26
27 </div>
28 </body>
29 </html>
30
选取节点:
/ ......从根节点选取。
----->>: /html/body/div/div/p ----->>: 张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝
// ......从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
----->>: //p ----->>: 张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝
@ ......选取属性。
----->>: /html/body/div/div/p[@class='title'] ----->>: 张三 ----->>: /html/body/div[@class='bookstore']/div[@class='book']/p ----->>: 张三
29.9
百度一下
谓语
选取元素:
选取属于 子元素的第一个元素: /html/body/div[@class='bookstore']/div[@class='book']/p[1] --->>
张三 选取属于 子元素的最后一个 元素: /html/body/div[@class='bookstore']/div[@class='book']/p[last()]
--->>
百度一下 选取属于子元素的倒数第二个元素: /html/body/div[@class='bookstore']/div[@class='book']/p[last()-2]
--->>
张三 选取最前面的两个属于元素的子元素的元素:
/html/body/div[@class='bookstore']/div[@class='book']/p[position()<3]
--->>
张三
29.9 /html/body/div[@class='bookstore']/div[@class='book']/p[position()<2]
--->>
张三
属性选择:
选取所有拥有属性的 title 元素:
//p[@class="price"]
--->>
29.9
36.9 选取所有p>30的元素
//div[p>30]
--->>
李四
36.9
京东 选取元素,且其中的 price 元素的值须大于 30:
/html/body/div/div[p>30]/p[@class="price"]
--->>
36.9
选取多个
选取所有 title 和 price 元素。
//p[@class ="price"]|//p[@class ="title"]
--->>
29.9
36.9
张三
李四
选取 book1、book2 元素的 class 元素
//div[@class = "book"]/p|//div[@class = "book1"]/p
--->>
张三
29.9
百度一下
李四
36.9
京东
Xpath语法学习记录的更多相关文章
- Xpath语法学习
贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考,推荐 XPath 详解,总结 3 详细语法参考 Xpath语法格式整理 4 官方参考 XP ...
- SQL语法学习记录——JOIN
学习内容参考来源:www.runoob.com JOIN准备 --为了方便练习,在数据库中创建演示数据: create database TEST; use TEST ; ---------- go ...
- Python语法学习记录之tuple该如何使用?
一.介绍 dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明: 下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性. 每一个元素是pa ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Python爬虫利器三之Xpath语法与lxml库的用法
前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- Vue学习记录第一篇——Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
- mondb 常用命令学习记录
mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...
随机推荐
- 【Sass/SCSS 完整自学中文版教程02】SCSS 官方英文文档翻译整理
Sass 调试 目录 Sass 调试 @error @warn @debug 如果对本文有任何问题,建议,或者在前端技术体系方面有任何问题,可以添加我的微信: drylint , 我会尽可能为你解答, ...
- Java中short和int的转换
例子[1]: 第一种情况: short a = 1; a = a + 1; // 这一步会报错 System.out.print(a); 编译器会报错,原因如下: 第二种情况: short a = 1 ...
- C++课后习题
一.设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个带参数):析构函数:void setValue(int m, ...
- python math详解(1)
python math详解(1) 一.导入 python要调用math要进行导入 import math 二.返回值 math包里有一些值 比如 math.pi 返回pi的值 约为3.14 math. ...
- 变着花样来接参,PHP中接收外部参数的方式
对于PHP这样一个web语言来说,接参是非常重要的一个能力.毕竟从前端表单或异步请求传递上来的数据都要获取到才能进行正常的交互展示.当然,这也是所有能够进行web开发的语言的必备能力.今天我们就来看看 ...
- supermvc 操作备要
模板暂时仅支持smarty,需要指定模板文件 系统配置文件在supermvc文件夹下 sconfig.php 修改项目目录下的conf下的config.php 会覆盖系统默认配置 contro ...
- Nacos注册中心和配置中心流程原理
一.Nacos注册中心 1.服务启动后---->服务注册原理 springCloud集成Nacos实现原理: 服务启动时,在spring-cloud-commons包下 spring.facto ...
- 再谈OAuth授权
工作场景流程 大家都知道OAuth是用于第三方授权的,当你用其他的APP想访问微信账号的昵称.粉丝.联系人等信息,这里就需要微信进行授权,此时在APP的网页端是可以发现有微信登录的,点开会出现弹框,在 ...
- 剑指offer计划27(栈与队列困难)---java
1.1.题目1 剑指 Offer 59 - I. 滑动窗口的最大值 1.2.解法 解题思路:(来自作者bigbeats) 相当于维护一个最大队列(队头元素最大,向队尾非严格递减) 在未形成窗口前,先构 ...
- Linux下关于用户账户的几个文件解析
Linux下关于用户账户的几个文件解析 Linux是一个多用户系统,但是对于一个多用户共存的系统中,当然不能够出现用户相互越权等一系列的安全问题,所以如何正确的管理账户成为了Linux系统中至关重要的 ...