我試圖使用此代碼下載zip文件:的Python:如何下載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()
我得到一些二進制數據,但我「下載」文件的尺寸過小而且不是有效的zip文件。我沒有正確檢索zip文件嗎?下面顯示了f = o.open(remoteFileUrl)
的HTTP響應標頭。我不知道是否需要特殊處理,這樣的響應:
HTTP/1.1 200 OK服務器:
Apache的狼/ 1.1附註:私人
的Cache-Control:必須-重新驗證
過期:星期二,1997年12月31日23:59:59 GMT
內容處置:內聯;
filename =「files.zip」;
內容類型:應用程序/壓縮
傳輸編碼:分塊
我會好奇,在文檔中的你發現這個 – 2010-08-20 17:50:03
http://docs.python.org/library/urllib.html#urllib.urlopen:「一個類似文件的對象返回」,然後http://docs.python.org/library/stdtypes.html#file .read – RichieHindle 2010-08-23 08:12:14
真的只是一個包?我在顯示的鏈接處檢查了文檔,並且沒有看到它說任何read()直到EOF纔讀取。你能解釋更多嗎? – 2011-06-07 21:48:01