解决:python3 UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xXX’ in position XX
问题描述
最近在学爬虫,跟着一个gihub路线在学。写了一个简易爬虫代码如下:
import requests
url = '...'
headers = {
...
}
response = requests.get(url, headers = headers)
print(response.text)
运行程序后报错如题。
一开始疯狂找代码的bug,以为是对requests库理解不够。后来参考了一些博客发现原来是print函数本身的问题。
原因是print的默认编码不是utf-8!
解决
主要思路是修改print的编码。代码如下:
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')