python爬虫知识----数据提取----Xpath和lxml、BeautifulScoup4、正则(二)

python爬虫知识----数据提取----Xpath和lxml、BeautifulScoup4、正则(二)

添加小程序,兑换各种视频教程/数据资源。

www.zeeklog.com  - python爬虫知识----数据提取----Xpath和lxml、BeautifulScoup4、正则(二)
www.zeeklog.com  - python爬虫知识----数据提取----Xpath和lxml、BeautifulScoup4、正则(二)

1. 什么是Xpath:是在xml和html文档中查找信息的一门语言,可对xml和html中的元素和属性进行遍历。

2.Xpath开发工具:chrome插件Xpath Helper。firefox插件Xpath Checker。在浏览中的拓展程序中下载,,用于直接在浏览中查找节点下的元素,验证代码xpath的准确性。

3. Xpath语法:

3.1 选取节点:

表达式 描述 实例 结果
nodename 选取此节点的所有字节点 div 即选取div下的所有字节点
/ 如果是在最前面,是根节点下的直接字元素,没有返回null,如果不是在最前面,则是选中某个节点下的直接子元素,没有返回null /htm 即根节点下的hmtl直接子元素
// 从全局查找所有的的节点 //div 查看页面所有的div
@ 选某个节点的某个属性 //img[@src] 选取所有img节点中有src属性的img节点

3.2 谓语:

路径表达式 描述
/div/span[1] 选取div下的第一个span元素,默认从1开始,不是从0开始。
/div/span[last()] 选取div下的最后一个span元素。
/div/span[postion()<3] 选取div下的前2个span元素。
//div[@id] 从所有div中选取拥有id属性的div元素。
//div[@id=10] 从所有div中选取拥有id属性等于10的div元素。
//div[contains(@class,'box')] 从所有div中选取class中包含.box属性的div

3.3 通配符:

通配符 描述 实例 结果
* 匹配任意节点 /body/* 匹配body下所有子元素
@* 匹配节点的任何属性 //div[@*] 匹配所有div中带任意属性的div。

3.4 运算符: <

运算符 描述 实例 返回值
| 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集
+ 加法 6 + 4 10
- 减法 6 - 4 2
* 乘法 6 * 4 24
/ 除法 8 / 4 2
= 等于 price=9.80

如果 price 是 9.80,则返回 true。

如果 price 是 9.90,则返回 false。

!= 不等于 price!=9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.80,则返回 false。

< 小于 price<9.80

如果 price 是 9.00,则返回 true。

如果 price 是 9.90,则返回 false。

<= 小于或等于 price<=9.80

如果 price 是 9.00,则返回 true。

如果 price 是 9.90,则返回 false。

> 大于 price>9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.80,则返回 false。

>= 大于或等于 price>=9.80

如果 price 是 9.90,则返回 true。

如果 price 是 9.70,则返回 false。

or price=9.80 or price=9.70

如果 price 是 9.80,则返回 true。

如果 price 是 9.50,则返回 false。

and price>9.00 and price<9.90

如果 price 是 9.80,则返回 true。

如果 price 是 8.50,则返回 false。