Dudas con urllib + proxies

Arnau Sanchez pyarnau en gmail.com
Jue Ene 17 11:28:12 CET 2008


Amm-Python escribió:

> buff = ""
> while 1:
> 	s = f.read(8192)
>       if not s:
>       	break
> buff += s
> f.close()

Este trozo de código no es idiomático. En Python las cadenas son 
inmutables, así que en cada bucle no estás añadiendo datos a "buff" sino 
creando un objeto nuevo. El uso de memoria es, pues, desastroso.

Hay varias soluciones: lista+join, StringIO, generadores, etc:

http://www.skymind.com/~ocrow/python_string/

En este caso concreto, ¿por qué no haces simplemente...?

urllib.urlopen(url).read()

> Pero al cliente que utiliza la aplicación le devuelve el siguiente
> error:
> 
> <HEAD><TITLE>407 Proxy Authentication Required</TITLE></HEAD> <BODY>
> <H1>Proxy Authentication Required</H1> <H4> Unable to complete
> request:<P> Access denied due to authentication failure. 

La librería adecuado para trabajar con proxies es urllib2:

http://mail.python.org/pipermail/tutor/2004-November/033217.html

> Por cierto, si utilizara ftplib.FTP, ¿tendría también problemas con los
> proxies?

Depende de la configuración del proxy, pero es probable.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es