[英]Increase download speed of requests
我正在寫一個從dropbox下載一些視頻的腳本。 通常我的下載速度大約是150 kb /秒,這在firefox或IDM上使用普通下載器時。 但是在使用這個Python腳本時,事情變得太慢了:不到10 kb /秒。
這是我正在使用的代碼:
def download(url,i):
local_filename = "video_" + str(i) + ".mp4"
# NOTE the stream=True parameter
r = requests.get(url, stream=True)
with open(local_filename, 'wb') as f:
n = 0
for chunk in r.iter_content(chunk_size=1000000):
if chunk: # filter out keep-alive new chunks
n = n +1
f.write(chunk)
print "downloading " + str(n)
f.flush()
return local_filename
無論如何我可以加快下載速度嗎?
我相信1000000mb是一次加載大的值。 當所有數據緩沖到內存中時,您無法對塊執行任何操作。 如果文件大小小於512mb,我會將大小減小到512mb或1gb,然后塊大小應該小於那個,否則你不是真正加載塊,而是整個文件......如果你搜索網絡仍然是你會發現它仍然是一個熱門話題辯論。 示例代碼:
def download(url,i):
local_filename = "video_" + str(i) + ".mp4"
with open(local_filename, 'wb') as f, closing(requests.get(url, stream=True)) as res:
for n, chunk in enumerate(res.iter_content(chunk_size=512), start=1):
f.write(chunk)
print "downloading " + str(n)
return local_filename
高級文檔建議在流式傳輸時將其包裝在關閉的上下文中。 它應該穩定請求。 不需要if塊來過濾掉keep keep,也不需要刷新,只需直接寫入文件流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.