作者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://www.ptt.cc/bbs/Python/M.1532869421.A.415.html
→ eight0: 順便補充一點,推文提到的 print 問題在 3.6 版已經解決 07/29 21:04
推 laiDark: 謝謝e大特地回文,沒想到錯誤訊息真的派上用場... 07/29 22:01
→ laiDark: 因為我直接看下面的Error 拿去當關鍵字去找 07/29 22:02
→ laiDark: 沒仔細看上面的訊息(不過現階段我應該也不懂...) 07/29 22:03
→ laiDark: 所以一直往錯誤的方向去搜尋... 07/29 22:04
→ laiDark: 另外e大反推出的日文字結果是對的! 謝謝e大的回文 07/29 22:05
推 TitanEric: 好厲害R 推 07/29 22:36
推 cutekid: 大推(Y),長知識了! 07/30 15:13