将 urllib2 获取的 gzip 数据转换为 HTML

发布于 2024-08-10 02:52:19 字数 439 浏览 1 评论 0原文

我目前使用 mechanize 来读取 gzipped 网页,如下所示:

br = mechanize.Browser()
br.set_handle_gzip(True)
response = br.open(url)
data = response.read()

我想知道如何将 urllib2 获取的 gzipped 数据解压缩为 HTML 文本?

req = urllib2.Request(url)
opener = urllib2.build_opener()
response = opener.open(req)
data = response.read()
if response.info()['content-encoding'] == 'gzip':
    HOW TO DECOMPRESS DATA TO HTML

I currently use mechanize to read gzipped web page as below:

br = mechanize.Browser()
br.set_handle_gzip(True)
response = br.open(url)
data = response.read()

I wonder how to decompress gzipped data fetched by urllib2 to HTML text?

req = urllib2.Request(url)
opener = urllib2.build_opener()
response = opener.open(req)
data = response.read()
if response.info()['content-encoding'] == 'gzip':
    HOW TO DECOMPRESS DATA TO HTML

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

⒈起吃苦の倖褔 2024-08-17 02:52:19

试试这个:

import StringIO
data = StringIO.StringIO(data)
import gzip
gzipper = gzip.GzipFile(fileobj=data)
html = gzipper.read()

html 现在应该包含 HTML(打印出来查看)。有关详细信息,请参阅此处

Try this:

import StringIO
data = StringIO.StringIO(data)
import gzip
gzipper = gzip.GzipFile(fileobj=data)
html = gzipper.read()

html should now hold the HTML (Print it to see). See here for more info.

浮世清欢 2024-08-17 02:52:19
def ungzip(r,b):
    headers = r.info()
    if ('Content-Encoding' in headers.keys() and headers['Content-Encoding']=='gzip') or \
       ('content-encoding' in headers.keys() and headers['content-encoding']=='gzip'):
        import gzip
        gz = gzip.GzipFile(fileobj=r, mode='rb')
        html = gz.read()
        gz.close()
        headers['Content-type'] = 'text/html; charset=utf-8'
        r.set_data(html)
        b.set_response(r)
def ungzip(r,b):
    headers = r.info()
    if ('Content-Encoding' in headers.keys() and headers['Content-Encoding']=='gzip') or \
       ('content-encoding' in headers.keys() and headers['content-encoding']=='gzip'):
        import gzip
        gz = gzip.GzipFile(fileobj=r, mode='rb')
        html = gz.read()
        gz.close()
        headers['Content-type'] = 'text/html; charset=utf-8'
        r.set_data(html)
        b.set_response(r)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文