今天准备写个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的文本内容 |