爬虫:关于网页编码

导语:

当我们用爬虫成功获取网页源码后,可能打印出来却是乱码的,因为使用requests 模块时,程序会根据HTTP头自动判断网页编码,但这样做就显得不太准确,所以还需要我们手动修改。

手动修改网页编码显得繁琐且笨拙,我们引入一个新的模块cchardet来帮助我们完成这一系列的工作。

  • 安装

    pip install cchardet

    因为是用C语言编写的缘故,cchardetchardet 更高效

  • 使用

    该模块里面只有一个方法,那就是detect ,下面给出官方的使用案例:

在这里插入图片描述

  • 测试

在这里插入图片描述

可以看到,requests 模块自动判断的网页编码方式为’ISO-8859-1’,但cchardet 判断的编码方式为’GB18030’,根据实际验证,发现后者的编码方式正确,所以cchardet 的准确性更高。

detect 函数返回值为一个字典,其中encoding 表示编码方式,confidence 表示准确度

  • 实际使用建议

在这里插入图片描述

如果要得到请求返回的二进制数据,直接return res.content 即可,如果要获得网页文本,那么建议先判断编码方式,然后对二进制使用得到的编码方式进行解码,从而得到显示正常的文本。其中,res.content.decode(encoding) 得到的是一个str 类型数据。
也可以:res.encoding = cchardet.detect(res.content)['encoding']

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值