python3的requests读金泫险缋取网站内容因各网站编码方式(utf-8,gbk,gb2312,gb18030等)的不同,可能出现乱码,现讲解一个处理方法。
工具/原料
安装有python3开发环境的电脑
notepad++
方法/步骤
1、有一个程序如图,读取一个网站的源码存入文件并打印在控制台窗口。
2、控制台中文均是乱码,打开存入C盘下的test.txt文件也均是乱码。
3、将文件改为gbk编码存入同样不能解决。
4、将文件改为gb2312编码时直接报错,原因是该网站源码中有一个字符是python不能转换的,该字符是\xee。
5、在线查找0xee所对应的字符,在gbk,big5,gb2312,gb18030中均没有,在Unicode中有如图所示字符,造成不能转换完成。
6、解决办法,data=r.text.e艘绒庳焰ncode("latin1").decode("gbk&鳎溻趄酃quot;)将读取的源码采用函数encode()转换为latin1编码,再将该编码转换为gbk,再利用发下代码withopen('c:/test.txt','w',encoding='utf-8')asf:f.write(data)写入文件。注意写入时的encoding是utf-8的编码。
7、C盘中写入的文件也正常。