humans - Python: descargar un archivo a través de HTTP con barra de progreso y autenticación básica
python wget (1)
Estoy usando urllib.urlretrieve
para descargar un archivo e implementar una barra de progreso de descarga usando el parámetro reporthook
. Como urlretrieve
no es compatible directamente con la autenticación, se me ocurrió
import urllib
def urlretrieve_with_basic_auth(url, filename=None, reporthook=None, data=None,
username="", password=""):
class OpenerWithAuth(urllib.FancyURLopener):
def prompt_user_passwd(self, host, realm):
return username, password
return OpenerWithAuth().retrieve(url, filename, reporthook, data)
Esto funciona, pero parece que podría haber una manera más directa de hacerlo (tal vez con urllib2 o httplib2 o ...) ¿Alguna idea?
urlgrabber tiene soporte integrado para barras de progreso, autenticación y más.