之前用机器人玩了一个twitterbot,在使用过程中,公司的网络是通过代理向外面传输信息的。查阅了一下,python内部的urllib2的Proxyhandler可以很方便的来操作并实现代理的方式,在python帮助中查询到urllib2.ProxyHandler的说明,如下:
Help on class ProxyHandler in urllib2: urllib2.ProxyHandler = class ProxyHandler(BaseHandler) | Methods defined here: | init(self, proxies=None) | proxyopen(self, req, proxy, type) | ---------------------------------------------------------------------- | Data and other attributes defined here: | handlerorder = 100 | ---------------------------------------------------------------------- | Methods inherited from BaseHandler: | lt(self, other) | add_parent(self, parent) | close(self)
这样就方便来操作代理了,代码如下:
import urllib2
proxy_info = {
'user' : 'username',
'pass' : 'password',
'host' : "secproxy.test.com",
'port' : 8080
}
# build a new opener that uses a proxy requiring authorization
proxy_support = urllib2.ProxyHandler({"http" :
"http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info})
opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
# install it
urllib2.install_opener(opener)