作者bohan222 (哈哈哈)
看板Python
标题Re: [问题] Python urllib.urlopen 抓取有繁体网页
时间Tue Jul 30 21:34:05 2013
谢谢大家~
我有改成content.decode()方式:
web = urllib.urlopen("
http://www.emega.com.tw/js/StockTable.htm")
程式返回下列讯息:
content = web.decode('utf-8')
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa4 in position 95: inva
lid start byte
这个是不是换成我的library有问题吗
※ 引述《timTan (用口头禅区分年记)》之铭言:
※ 引述《bohan222 (哈哈哈)》之铭言:
: 请教大家
: Python 2.7.3 有使用下面utf-8的宣告
宣告是说你的程式码是 utf8. 跟你要抓的东西无关。
: #!/usr/bin/python
: # -*- coding: utf-8 -*-
: 问题:
: 使用 web = urllib.urlopen(内容具有繁体中文的网站)
: content = web.read()
接下来的 content 只是一些无意义的 binary,
一定要解码,不解码,不能看。
而解码的方式,推文已有。
编码有学问
这篇 Joe 的文章一定要看过
http://bit.ly/14txdCm
: 想分析网页内容为繁体的部分,结果繁体部分会变成乱码,
: 似乎是ascii之类的编码问题
: 想请教有人有遇过这类型问题吗~谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.234.137
※ 编辑: timTan 来自: 123.192.234.137 (07/29 23:15)
1F:→ bohan222:来研究一下这篇文章~~谢谢~ 07/29 23:16
2F:推 lc85301:用了linux发现副档名不重要 07/29 23:44
3F:→ lc85301:看了Joe发现文件编码是你订的lol 07/29 23:45
4F:→ timTan:这就是重点,你不指定编码,就是要炸! 07/30 00:25
5F:推 WaiTingKuo:其是实是Joel XD stackoverflow的老板 07/30 00:36
6F:推 os653:对编解码不熟还是先用Python3比较好,至少出错相对明显 07/30 09:13
7F:→ timTan:上面提醒得真好 ~ Python 3 强迫你要弄懂编码~ 07/30 09:48
8F:→ timTan:我也是用 Python3 以後才比较掌握编码~ 07/30 09:49
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.211.213
9F:→ os653:别用utf-8用cp950,还有你没搞懂编码最好别再写下去 07/30 22:48
10F:→ os653:这个网页是运气不错只要弄对编码就能搞定,有些网页的编码可 07/30 22:51
11F:→ os653:是大杂烩不只一种阿... 07/30 22:53
12F:→ timTan:丢出去的 joe 的文章还没有读到精华。 07/30 23:28
13F:推 timTan:你快要了解了~ 07/30 23:32