今天写爬虫的时候突然遇到一个编码问题
UnicodeEncodeError: 'gbk' codec can't encode character '\xee' in position 20762: illegal multibyte sequence
在我的爬虫代码中,用了decode('utf-8'),但是竟然出现了gbk的编码错误
到网上查了一下资料,原来是因为python的print函数的自身限制,它并不能打印出所有的Unicode字符,所以我们可以将print函数的默认编码改为unicode编码
import io
import sys
import urllib.request
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
res=urllib.request.urlopen('http://www.baidu.com')
htmlBytes=res.read()
print(htmlBytes.decode('utf-8'))
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码
然后就好了