PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] requests 撈回來的 big5 網頁轉成 utf8
作者:
yshihyu
(yshihyu)
2016-10-22 15:49:10
https://gist.github.com/anonymous/f7781da21b44925a36320e61b6f27283
print h.text # 亂碼
我範例是從露天拍賣抓資料可是出現都是亂碼, 後來google 有人提到露天網頁編碼是 big5
後來我找到有人針對露天拍賣編碼去轉成unicode
http://bugcaptor.logdown.com/posts/181043-the-big5-page-requests-get-back-into-python-utf8
b = h.text.encode('latin-1').decode('big5')
UnicodeDecodeError: 'big5' codec can't decode bytes in position 207-208:
illegal multibyte sequence
但會出現上面錯誤訊息
後來我改成utf-8 網頁資料就正常
b = h.text.encode('latin-1').decode('utf-8')
好奇露天拍路編碼是 big5 那為什麼用 latin-1 轉成 str 在用decode('utf-8') 轉回 unicode
這樣會是正確?
print h.encoding 想去看編碼可是看到編碼是 ISO-8859-1 怎麼跟big5 utf8 latin-1 都沒關係?
謝謝
作者:
zps
(笑看人生)
2016-10-22 16:10:00
看你讀取的網頁,本就是 UTF-8 編碼了直接使用 h.encoding = 'utf-8' 就可以了可以先手動用 h.apparent_encoding 猜測得到編碼,再固定轉碼至於 latin-1 轉 utf-8 可參考
#1NphJ8xb
作者:
Typebrook
(Pham)
2016-10-22 16:40:00
在網址前面加個 view-source: 就可以看到原始碼了你的網頁原始碼第四行就有聲明是utf-8囉
作者:
zps
(笑看人生)
2016-10-22 17:40:00
補充一下,為何是 h.encoding 為 ISO-8859-1,可參考這篇
http://sh3ll.me/2014/06/18/python-requests-encoding/
繼續閱讀
[問題] Eric6 + PyQt4 啟動很慢
Dkky
[問題] 語法問題
kero961240
[問題] selenium取網頁內容的問題
kanako
[問題] 關於實現 "文字複製" 的問題(ctrl+c)
Assing
[問題] 爬蟲 拆寫字串問題
jackjenny
[問題] or 邏輯問題
kero961240
[問題] 關於排版縮排跑掉問題
herbacin
[問題]在不同測試case中共用同一個變數-pytest
jacobcan118
套件安裝問題
dinoptt1993
[問題] 字元編碼顯示問題?
koshi0413
Links
booklink
Contact Us: admin [ a t ] ucptt.com