Python爬虫中文乱码的几种解决办法

您所在的位置:网站首页 小时候3轮车 Python爬虫中文乱码的几种解决办法

Python爬虫中文乱码的几种解决办法

2024-01-30 03:21| 来源: 网络整理| 查看: 265

中文乱码的解决方法

爬虫最常见的问题是返回的数据中文乱码,对于爬虫小白来说这样的问题几乎不可避免,不过别担心,我这里有好几种解决中文乱码的方法,总有一款适合你。

方法一:

采用我这里代码里的这种方法,先在代码头设置编码方式为 " UTF-8" ,UTF-8 是保存中文字符的通用代码。然后,添加如下代码,一般都能解决中文乱码问题。

#如果目标网页编码与本地不一致,修改本地默认编码方式(防止输出中文乱码) if sys.getdefaultencoding() != resp.encoding: #resp.encoing用于查询网页所采用的编码格式 reload(sys) sys.setdefaultencoding(resp.encoding) #设置本地编码格式与网页的编码格式相同  方法二:

这里先补充几个知识点:

 

decode -----把当前字符解码成Unicode编码encode-----把Unicode编码格式的字符编码成其他格式的编码Python默认使用Unicode字符集,做编码转换时,要把Unicode作为中间编码,先decode(解码)成Unicode编码,再encode(编码)成其他编码。非Unicode编码不能直接encode成其他编码,否则会报错。用requests模块获得response对象,已经预先对于网页的编码格式(通过网页的Head头里的charset =XXX)做出判断,用resp.text得到的内容是解码之后的内容,不需要再次解码。而用resp.content 得到的内容是未解码的二进制字节流,要先decode(解码),再encode(编码) #text输出的数据由request自动解码(把bytes型数据变成Unicode字符),只需要把Unicode编码成utf-8输出就行 respText1= resp.text.encode('utf-8','ignore') #content的内容需要手动解码成unicode再编码成utf-8等其他编码 respText2 = resp.content.decode('utf-8','ignore').encode('GBK','ignore')

 

方法三:

如果是在Pycharm中编程可以把图中圈起来的地方全部改成UTF-8,简单粗暴。

 

如果上面三种方法都试过了还是不行,可能就是网上说的网页下载时有压缩的缘故了,具体的解决方法参考以下链接:

https://blog.csdn.net/Dream_Hongyu/article/details/50478265

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3