今天准备写个Python爬虫爬取中华网的新闻,但提取元素时要用到Xpath,而还是19年暑假用到了这个东西,如今已经忘的差不多了,于是写了这篇博文加深记忆
简介
定义
Xpath是一门用来从XML文档中查找信息的语言
术语
在XPath中有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及根节点。XML文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
如下面这XML文档:
1  | <?xml version="1.0" encoding="UTF-8"?>  | 
上面的XML文档中的节点例子:
1  | <bookstore> (文档节点)  | 
语法
| 表达式 | 描述 | 
|---|---|
| nodename | 选取该节点的所有子节点 | 
| / | 从根节点选取 | 
| // | 全文选取 | 
| @ | 选择属性 | 
| * | 匹配任何元素节点 | 
| @* | 匹配任何属性节点 | 
举例如下:
| 路径表达式 | 结果 | 
|---|---|
| /bookstore/* | 选取bookstore元素的所有子节点 | 
| //* | 选取文档中的所有属性 | 
| //title[@*] | 选取所有带有属性的title元素 | 
| /bookstore/book[1] | 选取属于bookstore子元素的第一个book元素 | 
| //title[@lang] | 选取所有拥有名为lang的属性的title元素 | 
| //title[@lang=’eng’] | 选取lang属性值为eng的title元素 | 
| //a[@class=’theme’]/text() | 权限类名为theme的标签a的文本内容 |