[問題] (已解決)爬蟲圖片遇到編碼問題(日文)

看板Python作者 (C)時間7年前 (2018/07/29 12:14), 7年前編輯推噓4(4014)
留言18則, 5人參與, 7年前最新討論串1/1
------ 目前已解決----- 有熱心的版友跟我站內信後 發現是網頁編碼的問題 站內給我修改過的code 是可以抓的,非常感謝這位版友 也謝謝底下各位的推文與建議 Q_Q ----------------------- 各位版上的前輩們好: 昨天晚上臨時想寫一個小爬蟲 抓一個日本網站上的圖片 作業環境:windows 8.1 python版本:3.7.0 我是直接用Notepad++ 寫 用windows console 下指令去執行 結果遇到有圖片是用日文命名 導致UnicodeEncodeError 錯誤訊息截圖:https://imgur.com/Zw5wXnn
(這個截圖不知道有沒有用,沒用的話我再刪掉) Code:https://pastebin.com/681VVgzb 我只擷取抓圖片那邊的code 前面的code都只是過濾找出img的tag而已,應該是沒問題 然後用成 "http://abc.jpg"丟到urlretrieve抓到我設定的資料夾 這個方法也是我在網路上找到的 主要是i['src'] 會有日文字出現 (日文命名的圖片檔) 下面那一行key 是我之前專題的組員時候,要用指令下關鍵字(中文) 丟到該網站搜尋,把搜尋的結果抓下來 當時發現網址會把關鍵字轉成%B2%R2%45類似這樣 我的組員使用urllib.parse.quote將中文轉成那樣併入url 我參考組員的code 因為我想要轉成%xx%bb這個樣子 丟到urlretrieve抓 但是先試印出來的結果不太對 圖片:https://imgur.com/TT3VYAH
圖片網址在瀏覽器上直接是http://xxx.com/日文4.jpg 我擷取後半日文.jpg 貼在記事本 比對用quote印出來 (console) 發現整個不一樣... 因為有試過用記事本的網址貼到瀏覽器,可以正確顯示那個圖片 但quote不一樣也無解 我在stackoverflow 也試著用關鍵字爬過 其中這一篇:https://goo.gl/JYJrgW 提到windows的狀況 難道只能修改作業系統或是跳槽到linux嗎.... 沒有只改code就能解決的辦法嗎 這個問題意想不到我弄了一個晚上到現在都還沒用好 還麻煩有類似經驗的大大幫忙了,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.238.66 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532837695.A.65D.html

07/29 15:59, 7年前 , 1F
既然是 quot 的問題,你應該把 quot 相關的程式碼貼上來
07/29 15:59, 1F
e大,你說的quot 難道是指我用的quote << 不過這個我也只有用那一行 ※ 編輯: laiDark (140.123.238.66), 07/29/2018 16:22:37

07/29 18:46, 7年前 , 2F
檔名是日文應該是沒問題
07/29 18:46, 2F

07/29 18:46, 7年前 , 3F
忘了我是Linux,windows我就不知道了.....
07/29 18:46, 3F

07/29 18:47, 7年前 , 4F
用utf-8應該是沒問題阿
07/29 18:47, 4F

07/29 18:51, 7年前 , 5F
應該是在cmd視窗下的關係 那是big5
07/29 18:51, 5F
c大,有版友建議我cmd改utf8~ 但結果還是一樣QQ

07/29 19:10, 7年前 , 6F
用Ubuntu on bash一切問題就解決 powershell一樣會有編
07/29 19:10, 6F

07/29 19:10, 7年前 , 7F
碼問題
07/29 19:10, 7F
※ 編輯: laiDark (140.123.238.66), 07/29/2018 19:21:46

07/29 20:24, 7年前 , 8F
應該跟 cmd 的 encoding 無關,更何況 3.6 過後 Windows
07/29 20:24, 8F

07/29 20:24, 7年前 , 9F
也預設是 UTF-8。
07/29 20:24, 9F
※ 編輯: laiDark (140.123.238.66), 07/29/2018 20:30:31

07/29 20:27, 7年前 , 10F

07/29 20:30, 7年前 , 11F
cmd我倒是沒改過,但因為我曾經在windows遇過無解的
07/29 20:30, 11F

07/29 20:30, 7年前 , 12F
就試著強迫自己改Linux,似乎問題就直接解了
07/29 20:30, 12F

07/29 20:31, 7年前 , 13F
code預設utf-8沒問題 但有時在print(show)時 會出事
07/29 20:31, 13F
c大,因為我是昨晚臨時想寫,就沒有另外裝linux ~ (python notepad++ 都是昨天才裝的XD) 只是這支程式是想要給其他朋友使用,才在windows底下寫 我也是第一次在windows下寫python,不然我之前都是用linux 只是那台linux電腦壞掉,現在也是用筆電先墊著.... ※ 編輯: laiDark (140.123.238.66), 07/29/2018 20:37:22

07/29 20:32, 7年前 , 14F
我用Linux主機定期抓檔,很常遇到日文,都沒問題照樣存檔
07/29 20:32, 14F

07/29 20:42, 7年前 , 15F
Windows 下的文字編碼問題有時候的確蠻麻煩的,經驗上
07/29 20:42, 15F

07/29 20:42, 7年前 , 16F
主要都在顯示方面,所以我後來幾乎都直接寫進 log 檔。
07/29 20:42, 16F

07/29 23:44, 7年前 , 17F
所以後來我把顯示(print)部份拿掉,大多是沒問題
07/29 23:44, 17F

07/30 10:32, 7年前 , 18F
log到file +1
07/30 10:32, 18F
文章代碼(AID): #1RNJy_PT (Python)
文章代碼(AID): #1RNJy_PT (Python)