Python下载文件
本文主要介绍使用Python3下载文件的常用方法。
urllib
1 | def report_hook(count, block_size, total_size): |
urllib3
1 | import os |
requests
1 | import os |
如果下载比较大的文件,requests可以实现将下载的文件分块写到磁盘。1
2
3
4
5
6
7
8
9import os
import requests
url='https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64.exe'
filename = os.path.basename(url)
r = requests.get(url)
with open(filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=32):
# r.iter_content(chunk_size) 来控制每个chunk的大小
f.write(chunk)
wget
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。1
2
3
4
5
6
7
8
9
10import wget
import subprocess
import os
def report_hook(current, total, width=100):
print('%2d%%' % (100.0 * current / total))
url='https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64.exe'
filename = os.path.basename(url)
cmd='wget --no-check-certificate -O %s %s ' % (filename, url)
# subprocess.call(cmd,shell=True)
wget.download(url, out=filename,bar=report_hook)
wget常用参数:
- -c 断点续传
- -t BUMBER 最大尝试连接次数(–tries=NUMBER)
- -T SECONDS 响应超时秒数 (–timeout=SECOBDS)
- -P PREFIX 将文件保存在目录(–directory-prefix=PREFIX)