先介绍一下问题背景。
在爬取bilibili某视频的弹幕并保存到文件的时候抛出了这么一个错,用try...except...
发现是颜文字_(눈_눈」∠)_的锅。。。
百度了这个问题,结果发现有许多人遇到这个问题,比如这个和这个,然而他们是在print
的时候报错,而我在print
的时候并没有问题,这就比较尴尬了,后来查Python3的文件操作,最终在廖大大的教程找到解决办法。
要写入特定编码的文本文件,请给
open()
函数传入encoding
参数,将字符串自动转换成指定编码。
最后完美解决问题
部分代码如下:
data = re.findall(r'<d.*?">(.*?)</d>', r.text)
with open('danmu.txt', 'w', encoding = 'utf-8') as f:
for x in data:
f.write(x+'\n')
弹幕文件截图如下: