打印的html返回乱码文本。。。而不是在浏览器的“查看源代码”中看到的内容。在
为什么?如何轻松修复?在
谢谢你的帮助。在
使用mechanize、curl等的相同行为
import urllib
import urllib2
start_url = "http://www.ncert.nic.in/ncerts/textbook/textbook.htm"
response = urllib2.urlopen(start_url)
html = response.read()
print html
Tags:
尝试请求。Python Requests.
这是因为该站点使用gzip编码。据我所知,urllib不支持压缩,因此您最终会得到某些使用该编码的站点的压缩html响应。您可以通过打印响应中的内容头来确认这一点,如下所示。在
^{pr2}$在这里您将看到“内容编码”是gzip格式。为了使用标准的urllib库解决这个问题,您需要使用gzip模块。Mechanize也这样做,因为它使用相同的urllib库。请求将处理此编码并为您很好地格式化它。在
我用curl得到了同样的乱码
结果似乎被压缩了。所以这为我显示了正确的HTML。在
^{pr2}$下面是用Python实现这一点的解决方案:Convert gzipped data fetched by urllib2 to HTML
编辑:OP:
阅读以上内容后,修改后的答案是:
html
现在保存HTML(打印出来看看)相关问题 更多 >
编程相关推荐