import requests import datetime import model # file_size if byte def download_file(servers, chunk_size=64 * 1024, file_size=1 * 1024 * 1024): for server in servers: url = server["url"] server_name = server["name"] chunk_read = 0 s_time = datetime.datetime.now() e_time = None with requests.get(url, stream=True) as r: for chunk in r.iter_content(chunk_size): if chunk_read >= file_size: e_time = datetime.datetime.now() break if chunk: chunk_read += len(chunk) duration = (e_time - s_time).total_seconds() speed = chunk_read / duration / 1024 / 1024 * 8 # mega bit model.add_record(server_name, speed) # print(now_timestamp{} MB download".format(chunk_read / 1024 / 1024)) # print("{} seconds".format(duration / 1)) # return speed