6.xpath的基本使用

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  或运算

4.8  如果不想思考xpath怎么写可以直接复制

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 的内容

4.8  如果不想思考xpath怎么写可以直接复制

比如我现在想要 百度一下这个按钮 的xpath,我们F12,然后找到相应的html,之后右键->Copy->Copy XPath

我复制下来的就是这个 //*[@id="su"] ,我们思考一下发现确实合理,因为html中的id是唯一的 

5  xpath返回的对象使用xpath

6  常见错误

6.1  存在没闭合的标签

我现在想找这个title

那我可以这样写

运行后会报错

这个错误的原因就是有没闭合的标签,比如这里的meta

我们需要闭合这里的标签

|然后再运行就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值