我使用python以編程方式從Web服務器下載zip文件。使用網絡瀏覽器,沒問題。我寫了這個(部分)腳本;對二進制數據使用Urlllib2.urlopen失敗?
response = urllib2.urlopen(url, data, 10)
the_page = response.read()
f = open(filename, 'w')
f.write(the_page)
f.close()
請求成功,我得到數據。問題是我正在下載的文件 - 一個zip文件 - 不起作用;該文件似乎已損壞。它似乎是正確的長度,並且在文本編輯器中看起來看起來像一個zip文件內容。這裏是下載的標題;
Content-Length:9891 Content-Disposition:Content-Disposition:attachment;文件名=「TrunkBackup_201.zip」 日期:星期三,2009年12月30日12:22:08 GMT 接受-範圍:字節
當我檢查響應的長度,它是正確的,在9891.我懷疑發生了什麼當我撥打response.read()
時,結果是一個字符串,其回車符'有用'歸一化(例如,\r
至\n
)。當我編寫文件時,二進制數據有點不對,並且zip文件已損壞。我的問題是(A)我不確定我是否正確,(B)如果我是正確的,如何保存二進制數據本身?
當你以二進制模式打開文件('open(filename,'wb')')時它工作嗎? – 2009-12-30 12:29:41