为什么我凌乱的字符,而使用的urllib2打开网址是什么?(Why I got messy char

2019-10-16 13:45发布

这里是我的代码,你们也可以对其进行测试。 我总是乱七八糟的字符,而不是网页的源文件。

Header = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)"}

Req = urllib2.Request("http://rlslog.net", None, Header)

Response = urllib2.urlopen(Req)

Html = Response.read()

print Html[:1000]

通常Html应该是网页的源文件,但它最终要吨乱七八糟的字符。 任何人都知道这是为什么?

BTW:我在Python 2.7版

Answer 1:

布鲁斯已经建议,这似乎是一个压缩的问题。 服务器返回gzip压缩的内容,但urllib2不支持自动gzip压缩。 事实上,服务器在这种情况下,据我所知,行为不端:如果它应该只压缩内容Accept-encoding: gzip头存在(这你要么自己提供的,或者如果它支持自动受到你的客户端添加)。

所以:要么使用自动支持它,就像一个图书馆httplib2的 (我已经与有问题的网页进行测试,和它的作品),或解压缩自己(见的答案, 这太问题如何做到这一点,请注意,由服务器返回的头被检查的问题,看内容是否Gzip压缩)



Answer 2:

你与它支持的实时压缩的用户代理请求。 你确定输出不gzip压缩? 试图通过运行它zlib的模块和/或打印头



文章来源: Why I got messy characters while opening url using urllib2?