python3.3urllib在未知字符集中读取html

2024-03-29 09:51:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的代码python3.3阅读纽约大学的主页。但是,它在未知字符集中显示了不正确的输出。响应头内容类型为UTF-8。代码可以正确读取其他html,但不能用于nyu页面。你为什么能帮我?在

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')

结果片段如下:

^{pr2}$

Tags: 代码httpurl类型内容htmlwww主页
1条回答
网友
1楼 · 发布于 2024-03-29 09:51:58

响应是gzip的,因此没有必要尝试将其解码为UTF-8。您可以自己解压缩:

from io import StringIO
import gzip

with gzip.GzipFile(fileobj=r) as handle:
    html = handle.read()

或者使用类似于Requests的方法,这样做可以:

^{pr2}$

相关问题 更多 >