#problem with chinese character
file =wget.download("http://nba.stats.qq.com/player/list.htm#teamId=1")
with open(file,encoding ='utf-8') as f:
html = f.read()
print(html)
但是在输出中我得到如下错误
319 # decode input (taking the buffer into account)
320 data = self.buffer + input
--> 321 (result, consumed) = self._buffer_decode(data, self.errors, final)
322 # keep undecoded input until the next call
323 self.buffer = data[consumed:]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 535: invalid continuation byte
我搜索了一段时间,我看到了一些类似的问题,但解决方案似乎使用了latin-1,这显然不是这里的情况,我不知道如何使用哪种编码?
有什么建议吗?谢谢〜
答案 0 :(得分:0)
您所引用的网页未采用UTF-8编码进行编码,而是采用GBK进行编码。您可以通过查看标题来判断:
<meta charset="GBK">
如果您指定encoding='gbk'
,它将会正常工作。
另一方面,除非必须,否则我会选择不使用wget
,而是使用Python标准库附带的urllib
。它还保存了磁盘写入,代码更简单:
import urllib.request
with urllib.request.urlopen("http://nba.stats.qq.com/player/list.htm") as file:
html = file.read()
print(html.decode('gbk'))