python爬虫出现菱形问号乱码的解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫出现菱形问号乱码的解决方法相关的知识,希望对你有一定的参考价值。
参考技术A 在windows下使用非idle的其他ide编辑器,会碰到这个问题。对抓取到的网页内容进行先解码再编码即可。以requests为例:
r = r.content.decode('gbk').encode('utf-8')
出现编码问题时,
1.仔细分析错误的类型。
看是decode(解码)错误还是encode(转码)错误。
2.搞清自己处理的字符串是什么类型的。
一般看网页的charset,一般为gbk,gb2312或gb18030.其中包含字符的大小为gb2312 < gbk <gb18030。一般出现‘gbk’ codec can’t decode,是因为
(1)要处理的字符串本身不是gbk编码,但是你却以gbk编码去解码
比如,字符串本身是utf-8的,但是你却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错。
(2)处理的字符的确是gbk的,但是其中夹杂的部分特殊字符,是gbk编码中所没有的
如果有些特殊字符是GB18030中有的,但是是gbk中没有的。
则用gbk去解码,去所不支持的字符,也比如会出错。
所以,此种情况,可以尝试用和当前编码(gbk)所兼容的但所包含字符更多的编码(gb18030)去解码,或许就可以了。
3.然后换用这种的字符编码去编码或解码。
详情链接:https://www.crifan.com/summary_python_unicodedecode_error_possible_reasons_and_solutions/
以上是关于python爬虫出现菱形问号乱码的解决方法的主要内容,如果未能解决你的问题,请参考以下文章