今天看了一下 TurboGears 这个 Web 框架,很奇怪,它的下载要通过一个文件自动从网上下包来安装,但是,公司里面需要代理才可以连接到网络,所以我就顺便看了一下 Python 的网络代理的实现方式。
还是很简单的,几行就可以了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| import os,sys,urllib2
PROXY_INFO = {
'user' : 'monster' ,
'pass' : '123123' ,
'host' : '192.168.1.13' ,
'port' : 8080
}
def load_url(url):
proxy_support = urllib2 . ProxyHandler ( { 'http' : \
'http://%(user)s:%(pass)s@%(host)s:%(port)d' % PROXY_INFO } )
opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
urllib2.install_opener(opener)
src = urllib2.urlopen(url)
return src.read()
if __name__=='__main__':
print load_url("http://www.google.com")
|
详细地址:http://pastie.org/255667
这个是我写的链接到 Google 并返回 Response 内容的例子。
重点的地方是:
1
2
| opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
urllib2.install_opener(opener)
|
这两句,将代理信息保存到 urllib2 里面,这样,这个类的调用都会使用设置的代理。
我在 Google Code 上面见了一个专门放此类实现方式例子的项目,以后这些不好整理的东西都扔哪儿去,嘿嘿。
项目地址:http://code.google.com/p/python-snippets/