Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python 3.3 urllib在未知字符集中读取html_Python_Utf 8_Set_Character_Urllib - Fatal编程技术网

python 3.3 urllib在未知字符集中读取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

我使用以下代码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', '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。快速加载页面?