本文整理匯總了Python中urllib2.ProxyHandler方法的典型用法代碼示例。如果您正苦於以下問題:Python urllib2.ProxyHandler方法的具體用法?Python urllib2.ProxyHandler怎麽用?Python urllib2.ProxyHandler使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類urllib2
的用法示例。
在下文中一共展示了urllib2.ProxyHandler方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: error
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def error(self, proto, *args):
if proto in ['http', 'https']:
# XXX http[s] protocols are special-cased
dict = self.handle_error['http'] # https is not different than http
proto = args[2] # YUCK!
meth_name = 'http_error_%d' % proto
http_err = 1
orig_args = args
else:
dict = self.handle_error
meth_name = proto + '_error'
http_err = 0
args = (dict, proto, meth_name) + args
result = self._call_chain(*args)
if result:
return result
if http_err:
args = (dict, 'default', 'http_error_default') + orig_args
return self._call_chain(*args)
# XXX probably also want an abstract factory that knows things like
# the fact that a ProxyHandler needs to get inserted first.
# would also know when it makes sense to skip a superclass in favor of
# a subclass and when it might make sense to include both
示例2: prepare_us_proxy
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def prepare_us_proxy(cookie_handler):
if (addon.getSetting('us_proxy_socks5') == 'true'):
if ((addon.getSetting('us_proxy_pass') is not '') and (addon.getSetting('us_proxy_user') is not '')):
print 'Using socks5 authenticated proxy: ' + addon.getSetting('us_proxy') + ':' + addon.getSetting('us_proxy_port')
socks_handler = SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, addon.getSetting('us_proxy'), int(addon.getSetting('us_proxy_port')), True, addon.getSetting('us_proxy_user'), addon.getSetting('us_proxy_pass'))
opener = urllib2.build_opener(socks_handler, cookie_handler)
else:
print 'Using socks5 proxy: ' + addon.getSetting('us_proxy') + ':' + addon.getSetting('us_proxy_port')
socks_handler = SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, addon.getSetting('us_proxy'), int(addon.getSetting('us_proxy_port')), True)
opener = urllib2.build_opener(socks_handler, cookie_handler)
elif (addon.getSetting('us_proxy_socks5') == 'false'):
us_proxy = 'http://' + addon.getSetting('us_proxy') + ':' + addon.getSetting('us_proxy_port')
proxy_handler = urllib2.ProxyHandler({'http' : us_proxy})
if ((addon.getSetting('us_proxy_pass') is not '') and (addon.getSetting('us_proxy_user') is not '')):
print 'Using authenticated proxy: ' + us_proxy
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, us_proxy, addon.getSetting('us_proxy_user'), addon.getSetting('us_proxy_pass'))
proxy_auth_handler = urllib2.ProxyBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(proxy_handler, proxy_auth_handler, cookie_handler)
else:
print 'Using proxy: ' + us_proxy
opener = urllib2.build_opener(proxy_handler, cookie_handler)
return opener
示例3: serveProxy
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def serveProxy(self, path, data):
realpath = urllib.unquote_plus(path)[6:]
proxyconfig = realpath.split('/')[-1]
proxy_object = simplejson.loads(proxyconfig)
if int(proxy_object['connectiontype']) == 1:
proxies = proxy_object['dns_proxy']
MyHTTPHandler._dnsproxy = proxies
handler = MyHTTPHandler
elif int(proxy_object['connectiontype']) == 2:
proxy = proxy_object['proxy']
us_proxy = 'http://' + proxy['us_proxy'] + ':' + proxy['us_proxy_port']
proxy_handler = urllib2.ProxyHandler({'http' : us_proxy})
handler = proxy_handler
realpath = realpath.replace('/' + proxyconfig, '')
fURL = base64.b64decode(realpath)
self.serveFile(fURL, data, handler)
示例4: scan
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def scan(url, redirect, insecure, useragent, postdata, proxy):
request = urllib2.Request(url.geturl())
request.add_header('User-Agent', useragent)
request.add_header('Origin', 'http://hsecscan.com')
request.add_header('Accept', '*/*')
if postdata:
request.add_data(urllib.urlencode(postdata))
build = [urllib2.HTTPHandler()]
if redirect:
build.append(RedirectHandler())
if proxy:
build.append(urllib2.ProxyHandler({'http': proxy, 'https': proxy}))
if insecure:
context = ssl._create_unverified_context()
build.append(urllib2.HTTPSHandler(context=context))
urllib2.install_opener(urllib2.build_opener(*build))
response = urllib2.urlopen(request)
print '>> RESPONSE INFO <<'
print_response(response.geturl(), response.getcode(), response.info())
print '>> RESPONSE HEADERS DETAILS <<'
for header in response.info().items():
check_header(header)
print '>> RESPONSE MISSING HEADERS <<'
missing_headers(response.info().items(), url.scheme)
示例5: setUp
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def setUp(self):
super(ProxyAuthTests, self).setUp()
# Ignore proxy bypass settings in the environment.
def restore_environ(old_environ):
os.environ.clear()
os.environ.update(old_environ)
self.addCleanup(restore_environ, os.environ.copy())
os.environ['NO_PROXY'] = ''
os.environ['no_proxy'] = ''
self.digest_auth_handler = DigestAuthHandler()
self.digest_auth_handler.set_users({self.USER: self.PASSWD})
self.digest_auth_handler.set_realm(self.REALM)
# With Digest Authentication
def create_fake_proxy_handler(*args, **kwargs):
return FakeProxyHandler(self.digest_auth_handler, *args, **kwargs)
self.server = LoopbackHttpServerThread(create_fake_proxy_handler)
self.server.start()
self.server.ready.wait()
self.addCleanup(self.server.stop)
proxy_url = "http://127.0.0.1:%d" % self.server.port
handler = urllib2.ProxyHandler({"http" : proxy_url})
self.proxy_digest_handler = urllib2.ProxyDigestAuthHandler()
self.opener = urllib2.build_opener(handler, self.proxy_digest_handler)
示例6: test_proxy
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def test_proxy(self):
o = OpenerDirector()
ph = urllib2.ProxyHandler(dict(http="proxy.example.com:3128"))
o.add_handler(ph)
meth_spec = [
[("http_open", "return response")]
]
handlers = add_ordered_mock_handlers(o, meth_spec)
req = Request("http://acme.example.com/")
self.assertEqual(req.get_host(), "acme.example.com")
r = o.open(req)
self.assertEqual(req.get_host(), "proxy.example.com:3128")
self.assertEqual([(handlers[0], "http_open")],
[tup[0:2] for tup in o.calls])
示例7: test_proxy_https_proxy_authorization
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def test_proxy_https_proxy_authorization(self):
o = OpenerDirector()
ph = urllib2.ProxyHandler(dict(https='proxy.example.com:3128'))
o.add_handler(ph)
https_handler = MockHTTPSHandler()
o.add_handler(https_handler)
req = Request("https://www.example.com/")
req.add_header("Proxy-Authorization","FooBar")
req.add_header("User-Agent","Grail")
self.assertEqual(req.get_host(), "www.example.com")
self.assertIsNone(req._tunnel_host)
r = o.open(req)
# Verify Proxy-Authorization gets tunneled to request.
# httpsconn req_headers do not have the Proxy-Authorization header but
# the req will have.
self.assertNotIn(("Proxy-Authorization","FooBar"),
https_handler.httpconn.req_headers)
self.assertIn(("User-Agent","Grail"),
https_handler.httpconn.req_headers)
self.assertIsNotNone(req._tunnel_host)
self.assertEqual(req.get_host(), "proxy.example.com:3128")
self.assertEqual(req.get_header("Proxy-authorization"),"FooBar")
示例8: test_proxy_basic_auth
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def test_proxy_basic_auth(self):
opener = OpenerDirector()
ph = urllib2.ProxyHandler(dict(http="proxy.example.com:3128"))
opener.add_handler(ph)
password_manager = MockPasswordManager()
auth_handler = urllib2.ProxyBasicAuthHandler(password_manager)
realm = "ACME Networks"
http_handler = MockHTTPHandler(
407, 'Proxy-Authenticate: Basic realm="%s"\r\n\r\n' % realm)
opener.add_handler(auth_handler)
opener.add_handler(http_handler)
self._test_basic_auth(opener, auth_handler, "Proxy-authorization",
realm, http_handler, password_manager,
"http://acme.example.com:3128/protected",
"proxy.example.com:3128",
)
示例9: download_vcpython27
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def download_vcpython27(self):
"""
Download vcpython27 since some Windows 7 boxes have it and some don't.
:return: None
"""
self._prepare_for_download()
logger.info('Beginning download of vcpython27... this may take a few minutes...')
with open(os.path.join(DOWNLOADS_DIR, 'vcpython27.msi'), 'wb') as f:
if self.PROXY is not None:
opener = urllib2.build_opener(
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.ProxyHandler({'http': self.PROXY, 'https': self.PROXY})
)
urllib2.install_opener(opener)
f.write(urllib2.urlopen(self.VCPYTHON27_DOWNLOAD_URL, timeout=self.DOWNLOAD_TIMEOUT).read())
logger.debug('Download of vcpython27 complete')
示例10: download_python
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def download_python(self):
"""
Download Python
:return: None
"""
self._prepare_for_download()
logger.info('Beginning download of python')
with open(os.path.join(DOWNLOADS_DIR, 'python-installer.msi'), 'wb') as f:
if self.PROXY is not None:
opener = urllib2.build_opener(
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.ProxyHandler({'http': self.PROXY, 'https': self.PROXY})
)
urllib2.install_opener(opener)
f.write(urllib2.urlopen(self.PYTHON_DOWNLOAD_URL, timeout=self.DOWNLOAD_TIMEOUT).read())
logger.debug('Download of python complete')
示例11: setUp
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def setUp(self):
super(ProxyAuthTests, self).setUp()
self.digest_auth_handler = DigestAuthHandler()
self.digest_auth_handler.set_users({self.USER: self.PASSWD})
self.digest_auth_handler.set_realm(self.REALM)
# With Digest Authentication
def create_fake_proxy_handler(*args, **kwargs):
return FakeProxyHandler(self.digest_auth_handler, *args, **kwargs)
self.server = LoopbackHttpServerThread(create_fake_proxy_handler)
self.server.start()
self.server.ready.wait()
proxy_url = "http://127.0.0.1:%d" % self.server.port
handler = urllib2.ProxyHandler({"http" : proxy_url})
self.proxy_digest_handler = urllib2.ProxyDigestAuthHandler()
self.opener = urllib2.build_opener(handler, self.proxy_digest_handler)
示例12: check_single_proxy_status
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def check_single_proxy_status(self, proxy_address, domain_check):
try:
parse = urlparse(proxy_address)
proxy_scheme = parse.scheme
proxy = str(parse.hostname) + ':' + str(parse.port)
proxy_handler = urllib2.ProxyHandler({ proxy_scheme: proxy})
opener = urllib2.build_opener(proxy_handler)
opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')]
urllib2.install_opener(opener)
req = urllib2.Request(domain_check)
start_time = time.time()
sock = urllib2.urlopen(req)
end_time = time.time()
diff_time = round(end_time - start_time, 3)
log.console_log(Y + "{}[+] {} OK! Response Time : {}s".format(Y, proxy_address, str(diff_time), W ))
return 'ok'
except urllib2.HTTPError, e:
print('Error code: ' + str(e.code))
return e.code
示例13: header_info
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def header_info(self, url_request, proxy_address):
try:
if type(proxy_address) is list:
# Get random proxy from list
proxy_address_fix = random.choice(proxy_address)
else:
proxy_address_fix = proxy_address
if proxy_address is not "":
log.console_log("{}[*] Using Proxy Address : {}{}".format(Y, proxy_address_fix, W))
parse = urlparse(proxy_address_fix)
proxy_scheme = parse.scheme
proxy = str(parse.hostname) + ':' + str(parse.port)
proxy_handler = urllib2.ProxyHandler({ proxy_scheme: proxy})
opener = urllib2.build_opener(proxy_handler)
opener.addheaders = [('User-agent', ua.get_user_agent() )]
urllib2.install_opener(opener)
req = urllib2.Request(url_request)
data = urllib2.urlopen(req).info()
return data
except urllib2.HTTPError, e:
log.console_log('Error code: {}'.format( str(e.code)))
return e.code
示例14: just_url_open
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def just_url_open(self, url_request, proxy_address):
try:
if type(proxy_address) is list:
# Get random proxy from list
proxy_address_fix = random.choice(proxy_address)
else:
proxy_address_fix = proxy_address
if proxy_address is not "":
log.console_log("{}[*] Using Proxy Address : {}{}".format(Y, proxy_address_fix, W))
parse = urlparse(proxy_address_fix)
proxy_scheme = parse.scheme
proxy = str(parse.hostname) + ':' + str(parse.port)
proxy_handler = urllib2.ProxyHandler({ proxy_scheme: proxy})
opener = urllib2.build_opener(proxy_handler)
opener.addheaders = [('User-agent', ua.get_user_agent() )]
urllib2.install_opener(opener)
req = urllib2.Request(url_request)
data = urllib2.urlopen(req, timeout=25)
return data
except urllib2.HTTPError, e:
return e.code
示例15: check_gn_proxy
# 需要導入模塊: import urllib2 [as 別名]
# 或者: from urllib2 import ProxyHandler [as 別名]
def check_gn_proxy(proxy, protocal_type='HTTP'):
url = 'http://icanhazip.com'
proxy_handler = urllib2.ProxyHandler({
'http': 'http://' + proxy,
'https': 'https://' + proxy,
})
if protocal_type == 'HTTPS':
url = 'https://icanhazip.com'
opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)
try:
response = opener.open(url, timeout=3)
res_ip = response.read().strip()
return response.code == 200 and res_ip == proxy.split(':')[0]
except Exception:
return False