老猿使用如下代码读取网页内容:
req = urllib.request.Request(url=url,headers=header)
text = urllib.request.urlopen(req).read().decode()
fp = open(r’c: emp esthtml.txt’,‘a+’)
fp.write(text)
fp.close()
执行时读取网页内容都没有问题,在写入文件时报错:
fp.write(text)
UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘xa0’ in position XXXX: illegal multibyte sequence。
老猿分析了一下报错原因,给出的错误是Unicode编码错误,不能使用gbk编码。而网页读取后调用的decode是默认解码,应该是utf-8,因此只需要将上述文件打开方式改成如下就可以了:
fp = open(r’c: emp esthtml.txt’,‘a+’, encoding=‘utf-8’)
验证测试ok。
老猿Python,跟老猿学Python!
博客地址:http://iyenn.com/index/link?url=https://blog.csdn.net/LaoYuanPython
老猿Python博客文章目录:http://iyenn.com/rec/324322.html
请大家多多支持,点赞、评论和加关注!谢谢!
文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览333596 人正在系统学习中

老猿Python
微信公众号
专注Python相关语言、图像音视频处理、AI


评论记录:
回复评论: