Support gzipped responses

This commit is contained in:
Laurent Bachelier 2012-03-09 01:35:51 +01:00
commit 391783a8b6

View file

@ -32,6 +32,8 @@ import time
import urllib
import urllib2
import mimetypes
from contextlib import closing
from gzip import GzipFile
from weboob.tools.decorators import retry
from weboob.tools.log import getLogger
@ -530,6 +532,16 @@ class BaseBrowser(StandardBrowser):
# print time.time()
# mechanize.Browser._set_response(self, response, *args, **kwargs)
def _set_response(self, response, *args, **kwargs):
# Support Gzip, because mechanize does not, and some websites always send gzip
if response and hasattr(response, 'set_data'):
headers = response.info()
if headers.get('Content-Encoding', '') == 'gzip':
with closing(GzipFile(fileobj=response, mode='rb')) as gz:
data = gz.read()
response.set_data(data)
mechanize.Browser._set_response(self, response, *args, **kwargs)
def _change_location(self, result, no_login=False):
"""
This function is called when we have moved to a page, to load a Page