python response 中文乱码问题

Python012

python response 中文乱码问题,第1张

获得response.text有如下类似的乱码

解决方法有两种:

第一种:

apparent_encoding方法是requests库利用chardet对字节流编码进行了猜测。一般来说使用这种方法,大部分网页的中文乱码都会恢复。如果还是不行,那就试试第二种方法。

第二种:

从网页格式中获得网页内容的编码方式(一般content-type字段会出现在HTML的header的头几行)。

如果直接拿来用,会报错

所以需要给decode加上第二个参数,decode([encoding], [errors='strict']), 第二个参数设置为ignore,则会忽略非法字符。

这样就能获得正确的中文内容了。

练习网址 https://news.mydrivers.com/1/628/628585.htm

可以查看一下你的脚本的编码格式是否和你cmd环境的编码格式一致.

windows环境下使用gb2312

python脚本中如果使用utf-8的话,则增加

#

-*-

coding:

utf-8

-*-

在脚本中可以修改你的编码格式,

方法如下:

sys.getdefaultencoding()

reload(sys)

sys.setdefaultencoding('UTF-8')

sys.getdefaultencoding()

这里的'utf-8'就是你设置的默认格式.

你可以进行修改为与系统一致的格式.例如:GB2312