问题
在使用requsts模块爬取小说时,要将网页代码写入文件发生:
UnicodeEncodeError: 'gbk' codec can't encode character '\u25ba' in position 169: illegal multibyte sequence
思考
我的代码:
import requests
html = requests.get('https://www.luoxia.com/qing/')
print(html.encoding) # 返回结果编码是utf-8
print("\u25ba") # Unicode编码
with open('html.txt', 'w+') as f:
f.write(html.text)
网页源码编码是utf-8的,通过请求得到的html也是utf-8编码的,
通过文件格式查看,
发现出错提示的**‘u25ba’**是unicode编码:
Unicode编码’u25ba’无法用gbk编码
这里只有open()打开的文件可能是gbk编码的。
解决方法:
对打开的文件指定编码集为utf-8
import requests
html = requests.get('https://www.luoxia.com/qing/')
print(html.encoding) # 返回结果编码是utf-8
print("\u25ba") # Unicode编码
with open('html.txt', 'w+', encoding='utf-8') as f:
f.write(html.text)
解决成功,没有报错,文件写入OK。