2010-12-22 9 views
1

Ich muss 2 urllib2 Öffner halten, eine für direkte Anfragen und die zweite, um Anfragen über Proxy-Server zu machen, und ich muss Opener-Switch zwischen Anfragen neu erstellen.Python: urllib2 behandeln mehrere Öffner

Wie Kontextenöffner zum Beispiel direkt und Proxy separat zu halten?

Antwort

6

Ich vermute, dass Ihre Verwirrung von der Verwendung install_opener und urllib2.urlopen stammt. Rufen Sie stattdessen einfach build_opener zweimal auf und speichern Sie die Ergebnisse in separaten Objekten. Dann können Sie bei Bedarf den passenden Öffner verwenden.

Beispiel:

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

Danke @itsadok das ist der Punkt, den ich war verwirrt). – sultan