Split _open() to allow request customization
This commit is contained in:
parent
b07da18081
commit
1e5f5940c5
1 changed files with 18 additions and 9 deletions
|
|
@ -188,6 +188,23 @@ class BaseBrowser(object):
|
||||||
return self._open(url, referrer, allow_redirects, **kwargs)
|
return self._open(url, referrer, allow_redirects, **kwargs)
|
||||||
|
|
||||||
def _open(self, url, referrer=None, allow_redirects=True, **kwargs):
|
def _open(self, url, referrer=None, allow_redirects=True, **kwargs):
|
||||||
|
req = self.build_request(url, referrer, **kwargs)
|
||||||
|
preq = self.session.prepare_request(req)
|
||||||
|
|
||||||
|
# call python-requests
|
||||||
|
response = self.session.send(preq, allow_redirects=allow_redirects)
|
||||||
|
|
||||||
|
if allow_redirects:
|
||||||
|
response = self.handle_refresh(response)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
def build_request(self, url, referrer=None, **kwargs):
|
||||||
|
"""
|
||||||
|
Does the same job as open(), but returns a Request without
|
||||||
|
submitting it.
|
||||||
|
This allows further customization to the Request.
|
||||||
|
"""
|
||||||
if isinstance(url, requests.Request):
|
if isinstance(url, requests.Request):
|
||||||
req = url
|
req = url
|
||||||
url = req.url
|
url = req.url
|
||||||
|
|
@ -207,15 +224,7 @@ class BaseBrowser(object):
|
||||||
# Yes, it is a misspelling.
|
# Yes, it is a misspelling.
|
||||||
req.headers.setdefault('Referer', referrer)
|
req.headers.setdefault('Referer', referrer)
|
||||||
|
|
||||||
preq = self.session.prepare_request(req)
|
return req
|
||||||
|
|
||||||
# call python-requests
|
|
||||||
response = self.session.send(preq, allow_redirects=allow_redirects)
|
|
||||||
|
|
||||||
if allow_redirects:
|
|
||||||
response = self.handle_refresh(response)
|
|
||||||
|
|
||||||
return response
|
|
||||||
|
|
||||||
REFRESH_RE = re.compile("^(?P<sleep>[\d\.]+)(; url=[\"']?(?P<url>.*?)[\"']?)?$", re.IGNORECASE)
|
REFRESH_RE = re.compile("^(?P<sleep>[\d\.]+)(; url=[\"']?(?P<url>.*?)[\"']?)?$", re.IGNORECASE)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue