#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/8/1 13:05 # @Author : Shuranima # @File : Single_thread_download.py # import os import requests from tqdm import tqdm import time headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0' } def down_from_url(url, dst): response = requests.get(url, headers=headers, stream=True) # (1) file_size = int(response.headers['content-length']) # (2) if os.path.exists(dst): first_byte = os.path.getsize(dst) # (3) else: first_byte = 0 if first_byte >= file_size: # (4) return file_size header = {"Range": f"bytes={first_byte}-{file_size}"} pbar = tqdm(total=file_size, initial=first_byte, unit='B', unit_scale=True, desc=dst) req = requests.get(url, headers=header, stream=True) # (5) with open(dst, 'ab') as f: for chunk in req.iter_content(chunk_size=1024): # (6) if chunk: f.write(chunk) pbar.update(1024) pbar.close() return file_size
def download(url, path, filename): if not os.path.exists(path): os.makedirs(path) print('地址:' + url) print('开始下载,' + filename) start_time = time.time() down_from_url(url, path + '/' + filename) end_time = time.time() print(f"下载完成,共花费了{end_time - start_time}")