发布时间:2020-04-21 13:15:28编辑:admin阅读(3077)
使用python3写了一个获取某网站文件的小脚本,使用了requests模块的get方法得到内容,然后通过文件读写的方式保存到硬盘
同时需要实现下载进度的显示
安装模块
pip3 install requests tqdm
test.py 完整代码如下:
#!/usr/bin/env 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: first_byte = 0 if first_byte >= file_size: 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")
效果如下:
本文参考链接:
https://www.zhihu.com/question/41132103/answer/279584095
47605
45985
36909
34469
29080
25713
24566
19714
19246
17756
5565°
6155°
5691°
5737°
6705°
5483°
5484°
5988°
5965°
7295°