我不確定如何做到這一點。一種方法是:Python下載文件
import urllib.request;
urllib.request.urlretrieve('www.example.com/file.tar', 'file.tar')
另一種方法是:
import urllib.request;
#Set as appropriate
userAgent = ....;
req = urllib.request.Request('www.example.com/file.tar', headers={'User-Agent' : userAgent});
response = urllib.request.urlopen(req);
#Save the file
f = open('file.tar', 'wb');
f.write(response.read());
f.close()
我不知道使用哪種方法。我將在循環中下載許多文件(使用模式文件名)。不過,我希望能夠設置一個用戶代理標題。這並不重要,但我想。
編輯:我忘了提及,我更喜歡第一種方法,但我不知道如何設置urlretrieve用戶代理標題。
我不明白。如果您想自定義標題,您的第二種方法有什麼問題?它不起作用嗎? – jdi 2012-03-27 23:16:37
它的工作原理,但我不確定什麼urllib.request.urlretrieve用於呢?另外我需要在每次迭代時創建一個響應對象(以防將其放入循環中)。代碼也很長,所以我認爲必須有一種方法來使用urlretrieve並設置標題。畢竟urlretrieve保存了很多行。 – s5s 2012-03-27 23:19:55
'urlretrieve'正是文檔所說的:一個更高級別的函數,僅用於將網絡資源複製到本地文件。你不會得到很多控制,比如標題,這就是爲什麼你必須下拉到一個請求對象。您正在執行'urlretrieve'的手動過程,因此它需要更多行。 – jdi 2012-03-27 23:22:45