Estoy usando urllib.urlretrieve
para descargar un archivo e implementar una barra de progreso de descarga usando el parámetro reporthook
. Desde urlretrieve
no soporta directamente la autenticación, se me ocurrióPython: descarga de un archivo a través de HTTP con barra de progreso y autenticación básica
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 ser una forma más directa de hacerlo (tal vez con urllib2 o httplib2 o ...) - -¿algunas ideas?
Agradable, funcionará perfectamente para mi proyecto actual – rinti
El URI de Ignacio está ahora (2010-06-25) desactualizado, la actualización uno es [urlgrabber] (http://linux.duke.edu/urlgrabber/) – Albireo
Nuevo URI: http://urlgrabber.baseurl.org/ –