python3 UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xXX‘ in position XX

解决: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')

你可能感兴趣的:(Python,request,python)