这可以帮助你,如果我的理解是正确的,你有一堆你想下载的 zip 文件......并检查当前状态,如果你愿意,你可以将此打印语句限制为 25 分钟或每 X 数量的mb
.
import requests
url_list = ["http://file-examples.com/wp-content/uploads/2017/02/zip_10MB.zip", "http://file-examples.com/wp-content/uploads/2017/02/zip_10MB.zip", "http://file-examples.com/wp-content/uploads/2017/02/zip_10MB.zip", "http://file-examplesc.com/wp-content/uploads/2017/02/zip_10MB.zipdd", "http://file-examples.com/wp-content/uploads/2017/02/zip_10MB.zip"]
def download_file(url, total_download_mb):
local_filename = url.split('/')[-1]
with requests.get(url, stream=True) as r:
filesize = int(r.headers["Content-Length"]) / 1024 / 1024
downloaded = 0
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
downloaded = (downloaded + len(chunk))
downloaded_mb = downloaded/1024/1024
print("%.2fmb / %.2fmb downloaded." % (downloaded_mb ,filesize))
total_download_mb += downloaded_mb
#download is finished could be unpacked ....
return total_download_mb
def download_url_list(url_list):
total_download_mb = 0
failed_urls = []
for i, url in enumerate(url_list):
try:
total_download_mb = download_file(url, total_download_mb)
print("Total download: %.2fmb" % total_download_mb)
except:
failed_urls.append(url_list[i])
print("failed by file:" + str(i))
print("failed downloads")
print(failed_urls)
download_url_list(url_list)