2010-12-22 40 views
1

我必须保留2个urllib2开瓶器,一个用于直接请求,第二个通过代理服务器发出请求,我必须重建请求之间的开关器切换。Python:urllib2处理多个开瓶器

如何保持上下文开启者例如直接代理分开?

回答

6

我怀疑你的困惑源于使用install_openerurllib2.urlopen。相反,只需拨打build_opener两次并将结果存储在单独的对象中。然后,您可以在需要时使用合适的开瓶器。

例子:

import urllib2 
direct = urllib2.build_opener() 
proxy_handler = urllib2.ProxyHandler({'http': 'http://www.example.com:3128/'}) 
proxied = urllib2.build_opener(proxy_handler) 


direct.open('http://stackoverflow.com') # opens directly 
proxied.open('http://stackoverflow.com') # opens through proxy 
+0

谢谢@itsadok这就是我感到困惑的点)。 – sultan 2010-12-22 14:52:39