Python爬虫url编码错误:UnicodeEncodeError

正在做下一个小程序的数据部分,部分数据需要从网上扒下来。从网上找到一个专门爬单词的程序,原程序的地址在这里。当然源程序一点问题都没有,在python3下完美运行。只不过源程序爬的是英语单词,ascii码在python中就是常用字符;然而我爬取的数据中有法语特殊字符,这样就导致了下面这个问题。

下图中,当网址和正常的ascii字符的单词组合在一起时,能够正常地获取到数据;而当网址和特殊字符组合在一起时,便会出现错误,终止程序的运行。

具体错误如下图所示:

然后不论我怎么去改变各种变量的encode或者decode或者是从stackoverflow上找的一些解决方法都无济于事。甚至还有改变环境变量的,比如在系统的环境变量中加入这一条:PYTHONIOENCODING = utf-8

不过都测试过了,都没有效果。直到看到了下面这点代码,原网站查看这里首先在开头引入from urllib import parse以及import urllib。然后在特殊字符变量的外面加上一个urllib.parse.quote。

在之后的测试中还会出一些小问题,不过这个因人而异:比如,我的是每个单词换行隔开,这里会有一个隐形的换行符,%0A (LF line feed %0A),这时需要适当的加工处理了。

参考资料 🚀