阅读目录
- 一、 XPath简介
- 1.1 什么是 XPath?
- 1.2 lxml 库
- 二、 XPath 语法
- 2.1 选取节点
- 2.2 XPath Axes(轴)
- 三、chrome 插件 xpath 的下载安装,及简单使用
一、 XPath简介
1.1 什么是 XPath?
- XPath 使用路径表达式在 XML 文档中进行导航
- XPath 包含一个标准函数库
- XPath 是 XSLT 中的主要元素
- XPath 是一个 W3C 标准
1.2 lxml 库
lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。
lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,我们可以利用XPath语法,来快速的定位特定元素以及节点信息。
二、 XPath 语法
我们将在下面的例子中使用这个 XML 文档。
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
2.1 选取节点
下面列出了最有用的路径表达式:
表达式 | 描述 |
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从任意节点选取。 |
. | 选取当前节点。 |
… | 选取当前节点的父节点。 |
@ | 取属性 |
谓语(Predicates)
路径表达式 | 结果 |
/bookstore/book[1] | 选取属于 bookstore 的第一个 book 元素。 |
/bookstore/book[last()] | 选取属于 bookstore 的最后一个 book 元素。 |
/bookstore/book[last()-1] | 选取属于 bookstore的 倒数第二个 book 元素。 |
/bookstore/book[position() < 3] | 选取最前面的两个 book 元素。 |
//title[@lang] | 选取所有拥有名为 lang 的属性的 title 元素。 |
//title[@lang=‘eng’] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 |
/bookstore/book[price>35.00] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 |
/bookstore/book[price>35.00]/title | 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。 |
上面所列举的是最基本的,也是使用次数最多的,其他的了解即可。
2.2 XPath Axes(轴)
轴名称 | 表达式 | 描述 |
ancestor | xpath(‘./ancestor::’) | 选取当前节点的所有先辈节点(父、祖父) |
ancestor-or-self | xpath(‘./ancestor-or-self::’) | 选取当前节点的所有先辈节点以及节点本身 |
attribute | xpath(‘./attribute::’) | 选取当前节点的所有属性 |
child | xpath(‘./child::’) | 返回当前节点的所有子节点 |
descendant | xpath(‘./descendant::’) | 返回当前节点的所有后代节点(子节点、孙节点) |
following | xpath(‘./following::’) | 选取文档中当前节点结束标签后的所有节点 |
following-sibing | xpath(‘./following-sibing::’) | 选取当前节点之后的兄弟节点 |
parent | xpath(‘./parent::’) | 选取当前节点的父节点 |
preceding | xpath(‘./preceding::’) | 选取文档中当前节点开始标签前的所有节点 |
preceding-sibling | xpath(‘./preceding-sibling::’) | 选取当前节点之前的兄弟节点 |
self | xpath(‘./self::’) | 选取当前节点 |
三、chrome 插件 xpath 的下载安装,及简单使用
1.下载地址,版本号为 2.0.2:
链接: https://pan.baidu.com/s/19rmq0rUJTDdcNJowLSufOg提取码:w5f0
2.安装
- 在chrome右上角找到选项–》更多工具–》扩展程序。把crx文件拖拽到框内,即可安装
3.解压源文件和解压后的文件
4.简单使用
xpath 插件完全是按照xpath语法来的,对网页提取有很大帮助,方便快捷。