# 方法一:使用urllib庫 # -*- coding:utf-8 -*- import urllib import time url = 'http://mvideo.spriteapp.cn/video/2017/0414' \ '/697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4' print "downloading with urllib" start = time.time() urllib.urlretrieve(url, "video.mp4") end = time.time() print 'Finish in :', end - startapp
# 方法二:使用urllib2庫 # -*- coding:utf-8 -*- import urllib2 import time url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \ '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4' print "downloading with urllib2" start = time.time() data = urllib2.urlopen(url).read() with open('video.mp4', 'wb') as video: video.write(data) end = time.time() print 'Finish in :', end - startide
# 方法三:使用requests庫 # -*- coding:utf-8 -*- import requests import time url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \ '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4' print "downloading with requests" start = time.time() r = requests.get(url) with open('video.mp4', 'wb') as video: video.write(r.content) end = time.time() print 'Finish in :', end - start函數
# 方法一:使用urllib2庫 # -*- coding:utf-8 -*- import urllib2 import time url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \ '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4' r = urllib2.Request(url) u = urllib2.urlopen(r) start = time.time() with open('video.mp4', 'w') as f: while True: tmp = u.read(1024) if not tmp: break f.write(tmp) end = time.time() print 'Finish in :', end - starturl
# 方法二:使用requests庫 # -*- coding:utf-8 -*- import requests import time url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \ '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4' # 當把get函數的stream參數設置成False時, # 它會當即開始下載文件並放到內存中,若是文件過大,有可能致使內存不足。 # 當把get函數的stream參數設置成True時,它不會當即開始下載, # 使用iter_content或iter_lines遍歷內容或訪問內容屬性時纔開始下載 r = requests.get(url, stream=True) f = open("file_path", "wb") start = time.time() for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) f.flush() # iter_content:一塊一塊的遍歷要下載的內容 # iter_lines:一行一行的遍歷要下載的內容 # 這兩個函數下載大文件能夠防止佔用過多的內存,由於每次只下載小部分數據 end = time.time() print 'Finish in :', end - startspa