Python爬虫url编码错误:UnicodeEncodeError

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

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

/uploads/2019/07/2019-07-06-00_49_32-Spyder-Python-3.7.jpg

具体错误如下图所示:

/uploads/2019/07/2019-07-06-00_56_44-Spyder-Python-3.7.jpg

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

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

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

from urllib import parse
import urllib

key = '测试'
encoded_url = 'https://xd.sh.cn/'+urllib.parse.quote(key)+'?q='+urllib.parse.quote(key)+'&typeall=1&suball=1&timescope=custom:2017-12-15:2017-12-18&Refer=g&page='

print(encoded_url)
/uploads/2019/07/2019-07-06-00_42_34-Spyder-Python-3.7.jpg
/uploads/2019/07/2019-07-06-00_47_01-output.txt-记事本.jpg

参考资料

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇