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