佛利斯博客

Python 爬虫写入文件出现 UnicodeEncodeError 编码错误

最近在学Python,想做几个爬虫用来自动登录,签到领金币之类的。按照视频教程操作,发现会出现 UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position xxxxx: illegal multibyte sequence 之类的错误。网上查了一下,解决方法还是蛮简单的。

在 Pycharm 写 Python 爬虫代码的时候,当用 write() 或者 print() 时候,会发现有些字符无法识别。在控制台出现如下错误:

Traceback (most recent call last):
  File "C:/Users/Forece/PycharmProjects/crawler/request_py.py", line 14, in <module>
    fp.write(req.content.decode('utf-8'))
UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 38160: illegal multibyte sequence

解决方法:
在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,Linux 则无这种问题,出现上述问题。 解决的办法就是,改变目标文件的编码:

复制代码代码如下:

f = open("output.html","w",encoding='utf-8')  
退出移动版