Python: urllib2 处理多个 opener

1 投票
1 回答
1867 浏览
提问于 2025-04-16 08:54

我需要保持两个 urllib2 的 opener,一个是用来直接请求的,另一个是通过代理服务器请求的。我还需要在请求之间切换这些 opener。

那么,怎么才能把 直接请求代理请求 的 opener 分开保持呢?

1 个回答

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

撰写回答