2010-12-22 54 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