我必须保留2个urllib2开启者,一个用于直接请求,第二个用于通过代理服务器发出请求,我将重建请求之间的切换器切换。
如何分别保留上下文开启者直接和代理?
答案 0 :(得分:6)
我怀疑您的混淆源于使用install_opener
和urllib2.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