urllib2请求代理的格式是什么?

时间:2014-06-06 01:53:53

标签: python urllib2

根据文档,这是格式:

Request.set_proxy(host, type)

所以我所拥有的就是这个例子:

Request.set_proxy("localhost:8888","http")

如果代理需要用户名和密码,格式是什么?

1 个答案:

答案 0 :(得分:1)

如果必须使用urllib2.Request对象,有两种方法:

在Python解释器之外设置环境变量http_proxy和/或https_proxy,或在导入os.environ['http_proxy']之前在内部使用urllib2

import os
os.environ['http_proxy'] = 'http://user:password@localhost:8888'
import urllib2
req = urllib2.Request('http://www.blah.com')
f = urllib2.urlopen(req)

或手动设置HTTP请求标头:

import urllib2
from base64 import urlsafe_b64encode
PROXY_USERNAME = 'user'
PROXY_PASSWORD = 'password'
req = urllib2.Request('http://www.blah.com')
req.set_proxy('localhost:8888', 'http')
proxy_auth = urlsafe_b64encode('%s:%s' % (PROXY_USERNAME, PROXY_PASSWORD))
req.add_header('Proxy-Authorization', 'Basic %s' % proxy_auth)
f = urllib2.urlopen(req)