[pyar] reportar progreso en una copia de archivos (alla wget)

Andres Riancho andres.riancho en gmail.com
Mar Abr 12 20:34:37 ART 2011


Martin,

2011/4/12 Martín Gaitán <gaitan en gmail.com>:
> Hola
>
> quiero bajar un archivo via urllib2 pero permitiendo un hook/callback
> o como se llame, para poder reportar progreso, por ejemplo usando
> progressbar [1]
> No puedo usar urllib.urlretrieve, que tiene un reporthook, porque
> necesito manejar cookies.
>
> Estoy usando shutil para copiar el descriptor que devuelve urllib a un
> archivo local.
> Hay alguna forma de hacerlo "de a pedacitos" ?

No se si ya existe algo que haga esto, pero lo que yo haria es
escribir una subclass de httplib.HTTPResponse y hacer un loop que vaya
leyendo de a pedacitos del socket. Podes tomar algunas ideas de w3af
[0]. Especificamente entre las lineas 170 y 229

[0] http://sourceforge.net/apps/trac/w3af/browser/trunk/core/data/url/handlers/keepalive.py

> sintéticamentee esto es lo que tengo.
>
>>>> opener = urllib2.build_opener(cookielib.CookieJar())
>>>> response = opener.open(url_file)
>>>> with open(filename, 'wb') as localfile:
> ...         shutil.copyfileobj(response.fp, localfile)
>>>>
>
>
> [1] http://code.google.com/p/python-progressbar/
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



-- 
Andrés Riancho
Director of Web Security at Rapid7 LLC
Founder at Bonsai Information Security
Project Leader at w3af



More information about the pyar mailing list