发布网友 发布时间:2022-04-25 14:49
共3个回答
懂视网 时间:2022-04-06 11:53
python写入html文件中文乱码问题
使用open函数将爬虫爬取的html写入文件,有时候在控制台不会乱码,但是写入文件的html中的中文是乱码的
案例分析
看下面一段代码:
# 爬虫未使用cookiefrom urllib import requestif __name__ == '__main__': url = "http://www.renren.com/967487029/profile" rsp = request.urlopen(url) html = rsp.read().decode() with open("rsp.html","w")as f: # 将爬取的页面 print(html) f.write(html)
看似没有问题,并且在控制台输出的html也不会出现中文乱码,但是创建的html文件中
解决方案
使用open方法的一个参数,名为encoding=” “,加入encoding=”utf-8”即可
# 爬虫未使用cookiefrom urllib import requestif __name__ == '__main__': url = "http://www.renren.com/967487029/profile" rsp = request.urlopen(url) html = rsp.read().decode() with open("rsp.html","w",encoding="utf-8")as f: # 将爬取的页面 print(html) f.write(html)
运行结果
感谢大家的阅读,希望大家收益多多。
本文转自: https://blog.csdn.net/qq_40147863/article/details/81746445
推荐教程:《python教程》
热心网友 时间:2022-04-06 09:01
这是因为IDLE中使用gbk编码,是ascii扩展字符集。
>>> import sys
>>> sys.getdefaultencoding()
'ascii'解决方法:
在IDLE中执行的时候
去掉字符串前面的u字符,也不要加#coding这一行。
2. 先import sys,然后reload(sys),再使用sys.setdefaultencoding("utf-8")。然后就可以打印前面带u的字符串了。(这是搜来的方法,实验了一下,发现在我这没有输出了。。重启了IDLE,才可以输出,不过又变会ascii了)
在文件中执行
在文件开头声明#coding行,文件保存为utf8编码,在字符串开头加u
热心网友 时间:2022-04-06 10:19
解决思路: