python 3.3 urllib在未知字符集中读取html
我使用以下代码Python3.3阅读纽约大学的主页。但是,它在未知字符集中显示不正确的输出。响应头内容类型为UTF-8。代码可以正确读取其他HTML,但不能用于纽约大学页面。你能帮我解释一下为什么吗python 3.3 urllib在未知字符集中读取html,python,utf-8,set,character,urllib,Python,Utf 8,Set,Character,Urllib,我使用以下代码Python3.3阅读纽约大学的主页。但是,它在未知字符集中显示不正确的输出。响应头内容类型为UTF-8。代码可以正确读取其他HTML,但不能用于纽约大学页面。你能帮我解释一下为什么吗 url='http://www.stern.nyu.edu/' opener = urllib.request.build_opener() opener.addheaders = [('User-agent', 'Mozilla/5.0'), ('Content-Type', 'tex
url='http://www.stern.nyu.edu/'
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0'),
('Content-Type', 'text/html; charset=UTF-8')]
r=opener.open(url)
r.read().decode('UTF-8')
结果片段如下:
¢=¿/JçW®<× 4ô9ïÛ9$*Á¹³÷î·ïõ¡(ÂÄÀPZÓ¯seßVÿ_<ÅsÎF"t¢ÂQýMâ°AÈX¨ÕA ¨IØ ³ <ðGÀp«�¾X(ÛìÊß}XkfÌ=] Ð0.|¿v°f©ÛTüAH
、=?/JçW®响应是gzip的,因此没有必要尝试将其解码为UTF-8。您可以自己解压缩它:
from io import StringIO
import gzip
with gzip.GzipFile(fileobj=r) as handle:
html = handle.read()
或者使用类似的方法,这对你来说很有用:
import requests
html = requests.get('http://www.stern.nyu.edu/', headers={
'User-agent': 'Mozilla/5.0'
}).text
还有一个问题。我怎样才能找到答案Gzipped@sse:内容编码
标题将包含gzip
。Gzip是最常见的压缩方法,但是还有一些其他的压缩方法:完美。非常感谢。还有一个问题。为什么有些页面是gzip,而不是text/html。快速加载页面?