2010-04-15 17 views
5

Quiero que Python ignore la configuración del proxy de Windows cuando usa urllib. La única forma en que logré hacerlo fue deshabilitar todas las configuraciones de proxy en Internet Explorer. ¿Hay alguna forma programática?¿Cómo ignorar la configuración del proxy de Windows con python urllib?

os.environ['no_proxy'] no es una buena opción, ya que me gustaría evitar el proxy para todas las direcciones.

Respuesta

3

paso a urlopen método

proxies={} 

o tratar con:

urllib.getproxies = lambda x = None: {} 

justo después de la importación urllib (Info encontró here).

+0

comentario Ver la respuesta de S.Mark, por favor – mcrisc

+0

¿Has probado la segunda solución? – systempuntoout

+0

la segunda solución realmente funciona. y 'urllib.getproxies = lambda x = None: {}' debería agregarse después de 'import urllib' como decía el documento. – Nancy

1

Según document, se podía pasar, apoderados = ninguno o proxies = {}

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

Desafortunadamente, eso no funciona. 'proxies = some_value' parece extender la lista de proxies conocidos en lugar de anularla. – mcrisc

+0

@ Jaú, ¿qué tal 'os.environ ['http_proxy'] = None'? – YOU

+0

La documentación dice que debe ser 'proxies = {}' – wOxxOm

3

Desde el urlib2 documentation: Clase urllib2.ProxyHandler (proxies []) ... Para desactivar proxy detectada automáticamente pasar una diccionario vacío

Así que lo que queremos hacer es lo siguiente:

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

Esto no funcionó en Python 3.5 para mí. Intenté usar urllib.request en lugar de urllib2 debido al cambio de la biblioteca y el código se ejecutó pero todavía estaba tratando de alcanzar el proxy cuando se ejecuta urlopen. La respuesta de systempuntoout a continuación funcionó para mí en mi caso. – DelboyJay

0

tuve problemas para hacer caso omiso de la solicitud de los proxies. Esto no funcionó.

proxies=None or proxies={} 

Esto hizo el trabajo

proxies={'http':None} 
Cuestiones relacionadas