fix when HTTP server returns shit (closes #406)
This commit is contained in:
parent
17b20eecd8
commit
73d33c0597
1 changed files with 5 additions and 4 deletions
|
|
@ -19,6 +19,7 @@ from __future__ import with_statement
|
||||||
import mechanize
|
import mechanize
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
import urllib2
|
||||||
|
from httplib import BadStatusLine
|
||||||
from weboob.tools.mech import ClientForm
|
from weboob.tools.mech import ClientForm
|
||||||
ControlNotFoundError = ClientForm.ControlNotFoundError
|
ControlNotFoundError = ClientForm.ControlNotFoundError
|
||||||
import re
|
import re
|
||||||
|
|
@ -244,7 +245,7 @@ class BaseBrowser(mechanize.Browser):
|
||||||
debug('Opening URL "%s", %s' % (args, kwargs))
|
debug('Opening URL "%s", %s' % (args, kwargs))
|
||||||
try:
|
try:
|
||||||
return mechanize.Browser.open_novisit(self, *args, **kwargs)
|
return mechanize.Browser.open_novisit(self, *args, **kwargs)
|
||||||
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine), e:
|
||||||
if if_fail == 'raise':
|
if if_fail == 'raise':
|
||||||
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
||||||
else:
|
else:
|
||||||
|
|
@ -288,7 +289,7 @@ class BaseBrowser(mechanize.Browser):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
self._change_location(mechanize.Browser.submit(self, *args, **kwargs))
|
self._change_location(mechanize.Browser.submit(self, *args, **kwargs))
|
||||||
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine), e:
|
||||||
self.page = None
|
self.page = None
|
||||||
raise BrowserHTTPError(e)
|
raise BrowserHTTPError(e)
|
||||||
except (mechanize.BrowserStateError, BrowserRetry), e:
|
except (mechanize.BrowserStateError, BrowserRetry), e:
|
||||||
|
|
@ -301,7 +302,7 @@ class BaseBrowser(mechanize.Browser):
|
||||||
def follow_link(self, *args, **kwargs):
|
def follow_link(self, *args, **kwargs):
|
||||||
try:
|
try:
|
||||||
self._change_location(mechanize.Browser.follow_link(self, *args, **kwargs))
|
self._change_location(mechanize.Browser.follow_link(self, *args, **kwargs))
|
||||||
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine), e:
|
||||||
self.page = None
|
self.page = None
|
||||||
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
||||||
except (mechanize.BrowserStateError, BrowserRetry), e:
|
except (mechanize.BrowserStateError, BrowserRetry), e:
|
||||||
|
|
@ -329,7 +330,7 @@ class BaseBrowser(mechanize.Browser):
|
||||||
except BrowserRetry:
|
except BrowserRetry:
|
||||||
if not self.page or not args or self.page.url != args[0]:
|
if not self.page or not args or self.page.url != args[0]:
|
||||||
self.location(keep_args, keep_kwargs)
|
self.location(keep_args, keep_kwargs)
|
||||||
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError, BadStatusLine), e:
|
||||||
self.page = None
|
self.page = None
|
||||||
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
||||||
except mechanize.BrowserStateError:
|
except mechanize.BrowserStateError:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue