Estoy intentando descargar un archivo zip utilizando este código:Python: Cómo descargar un archivo zip
o = urllib2.build_opener(urllib2.HTTPCookieProcessor())
#login
p = urllib.urlencode({ usernameField: usernameVal, passField: passVal })
f = o.open(authUrl, p)
data = f.read()
print data
f.close()
#download file
f = o.open(remoteFileUrl)
localFile = open(localFile, "wb")
localFile.write(f.read())
f.close()
estoy recibiendo algunos datos binarios, pero el tamaño del archivo que he "descargado" es demasiado pequeño y no es un archivo zip válido. ¿No estoy recuperando el archivo zip correctamente? El encabezado de respuesta HTTP para f = o.open(remoteFileUrl)
se muestra a continuación. No sé si se necesita un procesamiento especial para manejar esta respuesta:
HTTP/1.1 200 OK Servidor:
Apache-Coyote/1.1 Pragma: privada
Cache-Control: obligada revalidar
Expira : Martes, 31 de diciembre de 1997, 23:59:59 GMT
Disposición del contenido: en línea;
filename = "files.zip";
Content-Type: application/zip
Transfer-Encoding: fragmentada
Sería curioso cuando en la documentación que encontró esto –
http://docs.python.org/library/urllib.html#urllib.urlopen: "se devuelve un objeto similar a un archivo" y luego http://docs.python.org/library/stdtypes.html#file .read – RichieHindle
realmente solo un paquete? Revisé los documentos en el enlace que se muestra y no los veo en ningún lado. Dice que read() no lee hasta EOF. ¿Puedes explicarme mas? –