add ssl proxy support to browser and browser2 and add the option _proxy_ssl

This commit is contained in:
Johann Broudin 2014-03-13 19:12:33 +01:00 committed by Romain Bignon
commit 0f1726d01c
3 changed files with 26 additions and 14 deletions

View file

@ -313,12 +313,31 @@ class BaseBackend(object):
if not self.BROWSER: if not self.BROWSER:
return None return None
tmpproxy = None
tmpproxys = None
if '_proxy' in self._private_config: if '_proxy' in self._private_config:
kwargs['proxy'] = self._private_config['_proxy'] tmpproxy = self._private_config['_proxy']
elif 'http_proxy' in os.environ: elif 'http_proxy' in os.environ:
kwargs['proxy'] = os.environ['http_proxy'] tmpproxy = os.environ['http_proxy']
elif 'HTTP_PROXY' in os.environ: elif 'HTTP_PROXY' in os.environ:
kwargs['proxy'] = os.environ['HTTP_PROXY'] tmpproxy = os.environ['HTTP_PROXY']
if '_proxys' in self._private_config:
tmpproxys = self._private_config['_proxy_ssl']
elif 'https_proxy' in os.environ:
tmpproxys = os.environ['https_proxy']
elif 'HTTPS_PROXY' in os.environ:
tmpproxys = os.environ['HTTPS_PROXY']
print tmpproxys
if tmpproxy is not None or tmpproxys is not None:
kwargs['proxy'] = {}
if tmpproxy is not None:
kwargs['proxy']['http'] = tmpproxy
if tmpproxys is not None:
kwargs['proxy']['https'] = tmpproxys
kwargs['logger'] = self.logger kwargs['logger'] = self.logger
if hasattr(self.BROWSER, 'SAVE_RESPONSES') and self.BROWSER.SAVE_RESPONSES and self.BROWSER.responses_dirname: if hasattr(self.BROWSER, 'SAVE_RESPONSES') and self.BROWSER.SAVE_RESPONSES and self.BROWSER.responses_dirname:

View file

@ -223,15 +223,8 @@ class StandardBrowser(mechanize.Browser):
# Use a proxy # Use a proxy
self.proxy = proxy self.proxy = proxy
if proxy: if proxy is not None:
proto = 'http' self.set_proxies(proxy)
if '://' in proxy:
v = urlsplit(proxy)
proto = v.scheme
domain = v.netloc
else:
domain = proxy
self.set_proxies({proto: domain})
# Share cookies with firefox # Share cookies with firefox
if firefox_cookies and HAVE_COOKIES: if firefox_cookies and HAVE_COOKIES:
@ -481,7 +474,7 @@ class BaseBrowser(StandardBrowser):
does not keep history does not keep history
:type history: object :type history: object
:param proxy: proxy URL to use :param proxy: proxy URL to use
:type proxy: str :type proxy: dictionnary
:param logger: logger to use for logging :param logger: logger to use for logging
:type logger: :class:`logging.Logger` :type logger: :class:`logging.Logger`
:param factory: mechanize factory. None to use Mechanize's default :param factory: mechanize factory. None to use Mechanize's default

View file

@ -125,7 +125,7 @@ class BaseBrowser(object):
self.logger = getLogger('browser', logger) self.logger = getLogger('browser', logger)
self._setup_session(self.PROFILE) self._setup_session(self.PROFILE)
if proxy is not None: if proxy is not None:
self.session.proxies = {'http': proxy, 'https': proxy} self.session.proxies = proxy
self.url = None self.url = None
self.response = None self.response = None