xpath是python做数据解析的库
目录
1 安装
2 解析本地的html文件
2.1 只有一个标签的情况
2.2 有多个标签的情况
3 解析网上的页面
4 xpath表达式
4.1 绝对路径
4.2 两个斜杠表示中间隔了0级或多级
4.3 通过属性查找
4.4 通过索引查找
4.5 获取文本内容
4.6 获取属性
4.7 或运算
5 xpath返回的对象使用xpath
6 常见错误
6.1 存在没闭合的标签
1 安装
pip install lxml
2 解析本地的html文件
2.1 只有一个标签的情况
比如我想找到test.html中的title
xpath()中接的是xpath表达式,xpath就和linux中的路径一样,先是html然后是head最后找到title
由于title只有一个,所以返回的结果列表中只有一个title对象
2.2 有多个标签的情况
比如我现在想找到这两个div
3 解析网上的页面
4 xpath表达式
4.1 绝对路径
4.2 两个斜杠表示中间隔了0级或多级
可以表示0级
也可以表示多级
由于两个斜杠表示多级,所以一开始的html也没必要写了
4.3 通过属性查找
比如我找这个
再比如我找这个
4.4 通过索引查找
上面我是对tree.xpath()返回的列表进行索引,我们也可以直接写在xpath表达式中,比如我找第二个div
- xpath表达式是从第1个算的,不算从第0个算的
4.5 获取文本内容
上面我是在外部使用的text,你也可以在里面使用text(),比如我想获得所有div的文本内容
text()只能拿到直系的文本内容,隔一层就拿不到了
如果你写 //text() 就可以拿到了
4.6 获取属性
比如我想取所有div的something属性值
只有一个div有something这个属性,所以只显示一个
换一个属性也一样,比如class
4.7 或运算
比如我现在想那 span或div 的内容
5 xpath返回的对象使用xpath
6 常见错误
6.1 存在没闭合的标签
我现在想找这个title
那我可以这样写
运行后会报错
这个错误的原因就是有没闭合的标签,比如这里的meta
我们需要闭合这里的标签
|然后再运行就可以了