Sto tentando di scaricare un file zip utilizzando questo codice:Python: Come scaricare un file 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()
io sono sempre alcuni dati binari, ma la dimensione del file "scaricato" è troppo piccolo e non è un file zip valido. Non sto recuperando il file zip correttamente? L'intestazione della risposta HTTP per f = o.open(remoteFileUrl)
è mostrata di seguito. Non so se è necessaria l'elaborazione speciale per gestire questa risposta:
HTTP/1.1 200 OK Server: Apache
-Coyote/1.1 Pragma: privato
Cache-Control: must-rinnovare
Scade : Mar, 31 dic 1997 23:59:59 GMT
Content-Disposition: inline;
filename = "files.zip";
Content-Type: application/zip
Transfer-Encoding: chunked
Sarei curioso in cui sono nella documentazione trovato questo –
http://docs.python.org/library/urllib.html#urllib.urlopen: "viene restituito un oggetto simile a un file" quindi http://docs.python.org/library/stdtypes.html#file .read – RichieHindle
davvero solo un pacchetto? Ho controllato i documenti al link mostrato e non vedo da nessuna parte che dice che read() non legge fino a EOF. puoi spiegare di più? –