之前用机器人玩了一个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)
| proxy_open(self, req, proxy, type)
| ———————————————————————-
| Data and other attributes defined here:
| handler_order = 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)