作者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)
→ bohan222:來研究一下這篇文章~~謝謝~ 07/29 23:16
推 lc85301:用了linux發現副檔名不重要 07/29 23:44
→ lc85301:看了Joe發現文件編碼是你訂的lol 07/29 23:45
→ timTan:這就是重點,你不指定編碼,就是要炸! 07/30 00:25
推 WaiTingKuo:其是實是Joel XD stackoverflow的老闆 07/30 00:36
推 os653:對編解碼不熟還是先用Python3比較好,至少出錯相對明顯 07/30 09:13
→ timTan:上面提醒得真好 ~ Python 3 強迫你要弄懂編碼~ 07/30 09:48
→ timTan:我也是用 Python3 以後才比較掌握編碼~ 07/30 09:49
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.211.213
→ os653:別用utf-8用cp950,還有你沒搞懂編碼最好別再寫下去 07/30 22:48
→ os653:這個網頁是運氣不錯只要弄對編碼就能搞定,有些網頁的編碼可 07/30 22:51
→ os653:是大雜燴不只一種阿... 07/30 22:53
→ timTan:丟出去的 joe 的文章還沒有讀到精華。 07/30 23:28
推 timTan:你快要了解了~ 07/30 23:32