中文乱码的解决方法
爬虫最常见的问题是返回的数据中文乱码,对于爬虫小白来说这样的问题几乎不可避免,不过别担心,我这里有好几种解决中文乱码的方法,总有一款适合你。
采用我这里代码里的这种方法,先在代码头设置编码方式为 " UTF-8" ,UTF-8 是保存中文字符的通用代码。然后,添加如下代码,一般都能解决中文乱码问题。
#如果目标网页编码与本地不一致,修改本地默认编码方式(防止输出中文乱码)
if sys.getdefaultencoding() != resp.encoding: #resp.encoing用于查询网页所采用的编码格式
reload(sys)
sys.setdefaultencoding(resp.encoding) #设置本地编码格式与网页的编码格式相同
这里先补充几个知识点:
#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