我必须保留 2 个 urllib2 opener,一个用于直接请求,第二个用于通过代理服务器发出请求,我必须重建请求之间的 opener 开关。
如何将上下文开启器(例如 direct 和 proxy 分开?
请您参考如下方法:
我怀疑您的困惑源于使用 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
