看板 Python 關於我們 聯絡資訊
------ 目前已解決----- 有熱心的版友跟我站內信後 發現是網頁編碼的問題 站內給我修改過的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
eight0: 既然是 quot 的問題,你應該把 quot 相關的程式碼貼上來 07/29 15:59
e大,你說的quot 難道是指我用的quote << 不過這個我也只有用那一行 ※ 編輯: laiDark (140.123.238.66), 07/29/2018 16:22:37
coeric: 檔名是日文應該是沒問題 07/29 18:46
coeric: 忘了我是Linux,windows我就不知道了..... 07/29 18:46
coeric: 用utf-8應該是沒問題阿 07/29 18:47
coeric: 應該是在cmd視窗下的關係 那是big5 07/29 18:51
c大,有版友建議我cmd改utf8~ 但結果還是一樣QQ
TitanEric: 用Ubuntu on bash一切問題就解決 powershell一樣會有編 07/29 19:10
TitanEric: 碼問題 07/29 19:10
※ 編輯: laiDark (140.123.238.66), 07/29/2018 19:21:46
stucode: 應該跟 cmd 的 encoding 無關,更何況 3.6 過後 Windows 07/29 20:24
stucode: 也預設是 UTF-8。 07/29 20:24
※ 編輯: laiDark (140.123.238.66), 07/29/2018 20:30:31
stucode: https://i.imgur.com/pDP8h6m.png 07/29 20:27
coeric: cmd我倒是沒改過,但因為我曾經在windows遇過無解的 07/29 20:30
coeric: 就試著強迫自己改Linux,似乎問題就直接解了 07/29 20:30
coeric: code預設utf-8沒問題 但有時在print(show)時 會出事 07/29 20:31
c大,因為我是昨晚臨時想寫,就沒有另外裝linux ~ (python notepad++ 都是昨天才裝的XD) 只是這支程式是想要給其他朋友使用,才在windows底下寫 我也是第一次在windows下寫python,不然我之前都是用linux 只是那台linux電腦壞掉,現在也是用筆電先墊著.... ※ 編輯: laiDark (140.123.238.66), 07/29/2018 20:37:22
coeric: 我用Linux主機定期抓檔,很常遇到日文,都沒問題照樣存檔 07/29 20:32
stucode: Windows 下的文字編碼問題有時候的確蠻麻煩的,經驗上 07/29 20:42
stucode: 主要都在顯示方面,所以我後來幾乎都直接寫進 log 檔。 07/29 20:42
coeric: 所以後來我把顯示(print)部份拿掉,大多是沒問題 07/29 23:44
Yshuan: log到file +1 07/30 10:32