Python: urllib2 处理多个 opener
我需要保持两个 urllib2 的 opener,一个是用来直接请求的,另一个是通过代理服务器请求的。我还需要在请求之间切换这些 opener。
那么,怎么才能把 直接请求 和 代理请求 的 opener 分开保持呢?
1 个回答
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