🎈问题描述
有问题的代码:
from urllib.request import urlopen
url = "http://www.baidu.com"
resp = urlopen(url)
resp_1 = resp.read().decode("UTF-8")
with open("mybaidu.html", mode="w") as f:
f.write(resp_1)
print("over!")
问题代码运行后,文件中的内容:
运行乱码的mybaidu.html,如图:
🎈解决方法
关键点①:确定是哪一步导致了问题
关键点②:修改Python打开文件的编码(encoding="utf-8")
正确的代码:
from urllib.request import urlopen
url = "http://www.baidu.com"
resp = urlopen(url)
resp_1 = resp.read().decode("UTF-8")
with open("mybaidu.html", mode="w", encoding="utf-8") as f:
f.write(resp_1)
print("over!")
正确代码运行后,文件中的内容:
运行正确的mybaidu.html,如图:
🎈探索过程
关键点①:确定是哪一步出现的问题
关键点②:修改Python打开文件的编码(encoding="utf-8")
1、尝试修改编码方式,gbk、UTF-8、GB312等常用的几个都尝试了,不管用;
2、直接将未写入文件之前的内容打印出来时,发现此时中文正常显示
这就说明是‘写入’这个环节或‘写入之后的步骤’有问题
3、搜索关键词“爬虫写入文件后中文乱码”,事实证明,站在大佬们的肩膀上看世界是很有效率的!!!
🎈参考文章
1、python 爬虫写入文件中文乱码问题解决https://blog.csdn.net/helloexp/article/details/95757243