作者eight0 (人类)
看板Python
标题Re: [问题] 爬虫图片遇到编码问题(日文)
时间Sun Jul 29 21:03:38 2018
※ 引述《laiDark (C)》之铭言:
: 错误讯息截图:https://imgur.com/Zw5wXnn
你的错误讯息告诉你,这个错误发生於 client.py 的 1117 行︰
self._output(request.encode('ascii'))
当 request 以 ascii encode 时发生错误,因为它包含非 ascii 的字元。
这个错误和你用哪家 cmd、哪个作业系统没有关系,单纯是因为你在 URL 里
加入了非 ascii 的字元造成的。
你贴的 stackoverflow 问题也和这无关(该问题本身也有些意义不明),
并且该问题内使用的 Python 版本还是 2.x,跟你的状况不同。
由於你没有贴 quote 相关的程式码,只能从你 quote 的结果来猜测问题在哪。
quote 输出为︰
"%C2%83L%C2%83%C2%93%C2%83A%C2%83C1"
先 unquote︰
"\x83L\x83\x93\x83A\x83C1"
这里就能很明显看出来你把一串 binary 资料丢给 quote 了。
转成 bytes 并以 shift-jis 进行 decode︰
"\x83L\x83\x93\x83A\x83C1".encode("latin-1").decode("shift-jis")
得到的结果就是︰
'キンアイ1'
结论大概就是,你在一开始拿到的内容就错了,而且内容是以 latin-1 编码。
这也符合你贴出来的错误︰
'ascii' codec can't encode character '\x83'
--
ヾ(;ω;) ヾ(;ω;)
http://i.imgur.com/oAd97.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.186.18
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1532869421.A.415.html
1F:→ eight0: 顺便补充一点,推文提到的 print 问题在 3.6 版已经解决 07/29 21:04
2F:推 laiDark: 谢谢e大特地回文,没想到错误讯息真的派上用场... 07/29 22:01
3F:→ laiDark: 因为我直接看下面的Error 拿去当关键字去找 07/29 22:02
4F:→ laiDark: 没仔细看上面的讯息(不过现阶段我应该也不懂...) 07/29 22:03
5F:→ laiDark: 所以一直往错误的方向去搜寻... 07/29 22:04
6F:→ laiDark: 另外e大反推出的日文字结果是对的! 谢谢e大的回文 07/29 22:05
7F:推 TitanEric: 好厉害R 推 07/29 22:36
8F:推 cutekid: 大推(Y),长知识了! 07/30 15:13