2010-04-15 8 views
5

Je souhaite que Python ignore les paramètres de proxy Windows lors de l'utilisation de urllib. La seule façon que j'ai réussi à faire était de désactiver tous les paramètres de proxy sur Internet Explorer. Y a-t-il une manière programmatique?Comment ignorer les paramètres de proxy Windows avec python urllib?

os.environ['no_proxy'] n'est pas une bonne option, puisque je voudrais éviter le proxy pour toutes les adresses.

Répondre

3

Pass pour urlopen méthode

proxies={} 

ou essayer avec:

urllib.getproxies = lambda x = None: {} 

juste après l'importation urllib (Info trouvé here).

+0

Voir le commentaire pour la réponse de Saint Marc, s'il vous plaît – mcrisc

+0

Avez-vous essayé la deuxième solution? – systempuntoout

+0

la deuxième solution fonctionne vraiment. et 'urllib.getproxies = lambda x = None: {}' devrait être ajouté après 'import urllib' comme le dit le document. – Nancy

1

Selon document, vous pouvez passer, proxies = Aucun ou proxy = {}

urllib.urlopen(some_url, proxies=None) 
+0

Malheureusement, cela ne fonctionne pas. 'proxies = some_value' semble étendre la liste des proxies connues au lieu de la surcharger. – mcrisc

+0

@ Jaú, Que diriez-vous de 'os.environ ['http_proxy'] = None'? – YOU

+0

La documentation indique qu'il devrait être 'proxies = {}' – wOxxOm

3

De l'urlib2 documentation: Classe urllib2.ProxyHandler ([proxy]) ... Pour désactiver proxy passer une détectée automatiquement dictionnaire vide.

donc ce que nous voulons faire est la suivante:

import urllib2 
proxy = urllib2.ProxyHandler({}) # Pass empty dictionary to bypass proxy 
opener = urllib2.build_opener(proxy) 
urllib2.install_opener(opener) 
socket = urllib2.urlopen('http://www.google.com') 
content = socket.read() 
+0

Cela ne fonctionnait pas sous python 3.5 pour moi. J'ai essayé d'utiliser urllib.request à la place d'urllib2 à cause du changement de librairie et le code a fonctionné mais il essayait toujours de frapper le proxy quand urlopen est exécuté. La réponse de systempuntoout ci-dessous a fonctionné pour moi dans mon cas. – DelboyJay

0

J'ai eu du mal à faire la demande d'ignorer les procurations. Cela n'a pas fonctionné.

proxies=None or proxies={} 

Cela n'a

proxies={'http':None}