直接將遠程數據下載到本地
info:
urllib.urlretrieve(url[, filename[, reporthook[, data]]])
參數說明:
url:外部或者本地url
filename:指定了保存到本地的路徑(如果未指定該參數,urllib會生成一個臨時文件來保存數據);
reporthook:是一個回調函數,當連接上服務器、以及相應的數據塊傳輸完畢的時候會觸發該回調。我們可以利用這個回調函數來顯示當前的下載進度。
data:指post到服務器的數據。該方法返回一個包含兩個元素的元組(filename, headers),filename表示保存到本地的路徑,header表示服務器的響應頭。
eg:
1 import urllib 2 def callbackfunc(blocknum, blocksize, totalsize): 3 '''回調函數 4 @blocknum: 已經下載的數據塊 5 @blocksize: 數據塊的大小 6 @totalsize: 遠程文件的大小 7 ''' 8 percent = 100.0 * blocknum * blocksize / totalsize 9 if percent > 100: 10 percent = 100 11 print "%.2f%%"% percent 12 13 url = 'http://www.sina.com.cn' 14 local = 'd:\\sina.html' 15 urllib.urlretrieve(url, local, callbackfunc)