在python中使用带有用户名和密码的代理
我想在python中使用私有代理。请帮助我在当前的Python脚本中添加代理的用户名、密码。我知道要成功运行,需要添加的行很少在python中使用带有用户名和密码的代理,python,authentication,curl,proxy,urllib2,Python,Authentication,Curl,Proxy,Urllib2,我想在python中使用私有代理。请帮助我在当前的Python脚本中添加代理的用户名、密码。我知道要成功运行,需要添加的行很少 data = urllib.urlencode(values) proxy_support = urllib2.ProxyHandler({"http": httpproxy}) opener = urllib2.build_opener(proxy_support) urllib2.install_opener(opener) req = urllib2.Reque
data = urllib.urlencode(values)
proxy_support = urllib2.ProxyHandler({"http": httpproxy})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
req = urllib2.Request(url)
response = urllib2.urlopen(req,data)
page = response.read()
提前谢谢 过时了,但我找到了一个可以解决这个问题的网站 相关代码: 导入base64 导入URL库 从urllib导入unquote、splittype、splithost 导入xmlrpclib
class UrllibTransport(xmlrpclib.Transport):
def set_proxy(self, proxy):
self.proxyurl = proxy
def request(self, host, handler, request_body, verbose=0):
type, r_type = splittype(self.proxyurl)
phost, XXX = splithost(r_type)
puser_pass = None
if '@' in phost:
user_pass, phost = phost.split('@', 1)
if ':' in user_pass:
user, password = user_pass.split(':', 1)
puser_pass = base64.encodestring('%s:%s' % (unquote(user),
unquote(password))).strip()
urlopener = urllib.FancyURLopener({'http':'http://%s'%phost})
if not puser_pass:
urlopener.addheaders = [('User-agent', self.user_agent)]
else:
urlopener.addheaders = [('User-agent', self.user_agent),
('Proxy-authorization', 'Basic ' + puser_pass) ]
host = unquote(host)
f = urlopener.open("http://%s%s"%(host,handler), request_body)
self.verbose = verbose
return self.parse_response(f)
if __name__ == '__main__':
proxy = "http://proxy_user:proxy_passwd@my.authenticated.proxy.server:8080"
p = UrllibTransport()
p.set_proxy(proxy)
它创建一个包含身份验证的urllib2传输类。您的
httpproxy
变量的值是多少?你试过了吗
httpproxy = 'http://username:password@proxyurl:proxyport'
顺便说一下,urrlib2
无缝环境变量用于代理配置,而no_proxy
用于代理豁免。例如,对于*nix平台,以下代码应该可以工作:
export http_proxy=http://username:password@proxyurl:proxyport
此接收器用于
urrlib
,而不是功能更强大的urrlib2
。在urrlib2
中,您不必手动实现user-agent
和内容处理。我知道现在使用urllib
的唯一原因是urllib.urlencode,在urllib2