2010-12-22 6 views
1

Je dois garder 2 ouvreurs urllib2, un pour les demandes directes et le second pour faire des demandes via un serveur proxy et je dois reconstruire l'interrupteur d'ouverture entre les demandes. Comment garder les ouvreurs de contexte par exemple direct et par procuration séparément?Python: urllib2 gérer plusieurs ouvreurs

Répondre

6

Je soupçonne que votre confusion provient de l'utilisation install_opener et urllib2.urlopen. Au lieu de cela, appelez simplement build_opener deux fois et stockez les résultats dans des objets séparés. Ensuite, vous pouvez utiliser l'ouvre-porte approprié en cas de besoin.

Exemple:

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

Merci @itsadok qui est le point que je ne comprenais pas). – sultan