爬虫:关于网页编码

导语:

当我们用爬虫成功获取网页源码后,可能打印出来却是乱码的,因为使用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']

    原文作者:scgg
    原文地址: https://blog.csdn.net/qq_40760732/article/details/113472130
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞