高级参考: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语法学习记录的更多相关文章

  1. Xpath语法学习

    贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考,推荐 XPath 详解,总结 3 详细语法参考 Xpath语法格式整理 4 官方参考 XP ...

  2. SQL语法学习记录——JOIN

    学习内容参考来源:www.runoob.com JOIN准备 --为了方便练习,在数据库中创建演示数据: create database TEST; use TEST ; ---------- go ...

  3. Python语法学习记录之tuple该如何使用?

    一.介绍 dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明: 下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性. 每一个元素是pa ...

  4. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  5. Python爬虫利器三之Xpath语法与lxml库的用法

    前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...

  6. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  9. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

随机推荐

  1. EXCEL中给包含某个字段的单元格所在行标注颜色

    条件格式->新建规则->使用公式确定要设置格式的单元格 公式: =COUNTIF($A1,"*字符串*") 注意:通配符的使用.

  2. python中reduce filter map lambda函数

    lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...

  3. Python爬无止境,获得王者荣耀全部高清皮肤

    作为一名热爱王者两年的程序员,早就想爬取所有英雄皮肤的高清照片,在设个幻灯片放映,真香,这次只用16行代码就能实现,对于新手拿这个作为实战练手项目既简单又容易上手,快来尝试下. 百度"王者荣 ...

  4. 【tp3.2】根据不同域名来加载不同的配置文件

    遇到问题: 最近遇到一个需求,需要多个公众号使用同一个项目,这就导致了不同公众号访问的数据库和公众号配置不同. 解决思路: 查看文档:http://document.thinkphp.cn/manua ...

  5. 5ucms的评论列表该怎么写

    查看所有评论 <a href="{sys:plusurl}comment/?id={field:id}">查看所有评论</a> <linkhref=& ...

  6. javascript 分时函数 分批次添加DOM节点 timeChunk

    创建1000个webqq的qq好友列表, 一个好友用一个节点来表示 * timeChunk var timeChunk = function(a, fn, sz, done) { var obj, t ...

  7. css 样式设定

    阴影: --可以同时设定多个阴影.用逗号隔开 http://www.fly63.com/article/detial/4726 div { box-shadow: 10px 10px 5px #888 ...

  8. pyqt5无边框拖动

    from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys class ...

  9. 羽夏逆向破解日记簿——RunAsDate的实现原理分析

    前言   RunAsDate是一个小工具,允许您在指定的日期和时间运行程序,不过有人用它来破解有时间限制了.此实用程序不会更改计算机的当前系统日期和时间,但只会将指定的日期/时间注入所需的应用程序.该 ...

  10. golang实现一个简单的websocket聊天室

    基本原理: 1.引入了 golang.org/x/net/websocket 包. 2.监听端口. 3.客户端连接时,发送结构体: {"type":"login" ...