看板 Python 關於我們 聯絡資訊
各位好 想請教一下各位,目前我正在爬一個Big5的網頁,爬回來後使用 .encode('big5', 'ignore').decode('utf-8', 'ignore') 將其轉碼 但是中文字的部分,全部顯示為亂數了,例如正常的名稱是 Dell E2216H 21.5吋 Monitor(3年到府保) 但轉換後變 Dell E2216H 21.5T Monitor(3~O) 這不知道甚麼東西..... 若是單純使用 .encode('utf-8', 'ignore')的話則會全部轉為字串值,但並不會解析成 中文字.... 這會是我哪裡做錯了呢?懇請指點 https://i.imgur.com/yegep71.png https://i.imgur.com/qPmMiyK.png -- \ 這個板需要更高竿的酸民 //﹀\\ ╰═╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.2.131 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1525415808.A.7FF.html
ckc1ark: 不處理就已經是字串了 你是要寫檔還是? 05/04 14:51
您好,我只是要爬下來做檢視而已,如果我不進行轉碼的話,撈回來的資料會如下 https://i.imgur.com/kxmcTaj.png
ckc1ark: 環境是? 看起來他把big5的每個byte都encode成utf8 str 05/04 15:23
Windows10(1709)EN / Python 3.6.3
uranusjr: 你需要重想一下 encode decode 的意思, 如果有搞懂的話 05/04 15:25
uranusjr: 那行程式用看的就知道一定不對 (極端狀況除外) 05/04 15:26
因為我實在不解,為何會這樣...只好多方嘗試了 冏rz 爬了很多文章
ckc1ark: 在WebSite = ... 後加一行WebSite.encoding = 'big5'試試 05/04 15:29
ckc1ark: 看起來是一開始抓到的資料就encode錯了 05/04 15:29
真的正常了....冏rz 謝謝大神 ※ 編輯: KeyBoardKill (122.146.2.131), 05/04/2018 15:36:16
cutekid: 推 ck 大(Y) 05/04 17:41
coeric: http://ez2learn.com/basic/unicode.html 這篇建議看一下 05/06 07:17