一、概述
使用python3寫了一個獲取某網站文件的小腳本,使用了requests模塊的get方法得到內容,然后通過文件讀寫的方式保存到硬盤
同時需要實現下載進度的顯示
二、代碼實現
安裝模塊
pip3 install requests tqdm
test.py 完整代碼如下:
# !/usr/bin/python3 # -*- coding: utf-8 -*- import os from urllib.request import urlopen import requests from tqdm import tqdm def download_from_url(url, dst): """ @param: url to download file @param: dst place to put the file :return: bool """ # 獲取文件長度 try: file_size = int(urlopen(url).info().get('Content-Length', -1)) except Exception as e: print(e) print("錯誤,訪問url: %s 異常" % url) return False # 判斷本地文件存在時 if os.path.exists(dst): # 獲取文件大小 first_byte = os.path.getsize(dst) else: # 初始大小為0 first_byte = 0 # 判斷大小一致,表示本地文件存在 if first_byte >= file_size: print("文件已經存在,無需下載") return file_size header = {"Range": "bytes=%s-%s" % (first_byte, file_size)} pbar = tqdm( total=file_size, initial=first_byte, unit='B', unit_scale=True, desc=url.split('/')[-1]) # 訪問url進行下載 req = requests.get(url, headers=header, stream=True) try: with(open(dst, 'ab')) as f: for chunk in req.iter_content(chunk_size=1024): if chunk: f.write(chunk) pbar.update(1024) except Exception as e: print(e) return False pbar.close() return True if __name__ == '__main__': url = "https://dl.360safe.com/360/inst.exe" download_from_url(url, "inst.exe")
效果如下:

本文參考鏈接:
