Xpath 进行爬虫开发:基本概念、语法、实战
1. 开发前的准备
前面我们介绍的 XPath 基本的语法和基本操作,下面我们通过 lxml 库,来熟悉一下 XPath 的使用。
首先,我们需要一个测试文件,文件如下,文件名为 xpath_test.xml:
python item
java item
C item
java item
java item
java item
2. 基本语法
2.1 节点之间的关系
- 父节点:每个元素都有一个父亲节点;
- 子节点:每个元素节点可以有零个,一个或者多个父亲节点;
- 兄弟节点:相同父亲节点的节点;
- 先辈节点:一个元素的父亲节点的父亲节点;
- 后辈节点:一个元素的子节点的子节点。
表达式基本语法
表达式 | 功能简介 |
node | 选取node下面的所有的节点 |
/node | 斜杠是代表绝对路径,这个表达式语法的意思就是选择根上的node |
//node | 选择所有的node的节点,与XML的位置无关 |
. | 选择当前节点 |
… | 选择当前节点的父亲节点 |
node/child | 选取node子节点的所有的child元素 |
node//child | 选取所有后备节点的chiid信息 |
//@href | 选取所有的href的属性 |
2.2 谓语与通配符
表达式 | 功能简介 |
/books/python[1] | 选取books子元素中的第一个python元素 |
/books/python[last()] | 选取books子元素中的最后一个元素 |
/books/python[position() 回到顶部 |