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 预编译二进制 ...
随机推荐
- find用法 以及和exec xargs 的组合使用
1.查找当前目录下所有的txt的文件 [root@master1 ~]# find . -name "*.txt" -type f ./a.txt ./b.txt 2.exec 结 ...
- 跨 Docker 宿主机网络 overlay 类型
跨 Docker 宿主机网络 overlay 类型 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 三台 CentOS 7.0 虚拟机 (Vmware Workstation 1 ...
- PHP的zlib压缩工具扩展包学习
总算到了我们压缩相关扩展的最后一篇文章了,最后我们要学习的也是 Linux 下非常常用的一种压缩格式:.gz 的压缩扩展.作为 PHP 的自带扩展,就像 zip 一样,zlib 扩展是随着 PHP 的 ...
- Linux下Nodejs安装(完整详细)转
Linux下安装有两种方式,一个是下载源码make编译安装. 另外一种是比较推荐的,直接下载编译好的二进制,官方比较推荐后者. //Linux 64bit version wget --no-chec ...
- ecshop首页调用团购说明
要在首页调用购买. 发现在首页还不能直接调用团购说明.查看了一下代码发现要修改下才能调 打开根目录的 index.php 文件找到 $sql = 'SELECT gb.act_id AS group_ ...
- Java基础系列(41)- 冒泡排序
冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知 我们看到的嵌套循环,应该立马就可以得出这个算法的时间复 ...
- Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件
前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...
- mysql 优化的相关配置:总结中...
centos 为例:mysql 怎么获取配置参数信息: /etc/my.cnf; /etc/myql/my.cnf/; 家目录:或者指定目录:作用域 客户端:全局 set global 会话 set[ ...
- redis linux的 安装
https://blog.csdn.net/u011159417/article/details/80085011 安装: 1.获取redis资源 wget http://download.redis ...
- python编码问题:UnicodeDecodeError: 'gbk' codec can't decode
在获取yaml文件数据时,提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multib ...