如何通过download()函数在Python中下载网络资源
发布时间:2024-01-16 09:21:43
在Python中,可以使用requests库的get()函数来下载网络资源。这个函数会发送一个HTTP GET请求,并返回响应的内容。
首先,需要安装requests库。可以使用以下命令在终端中安装它:
pip install requests
然后,导入requests库并使用get()函数下载网络资源。以下是一个使用get()函数下载文件并保存到本地的示例:
import requests
def download(url, save_path):
# 发送GET请求并获取响应
response = requests.get(url, stream=True)
# 获取文件的总大小
total_size = int(response.headers.get('content-length', 0))
print(f"Downloading {url} ...")
# 每次读取的块大小
chunk_size = 1024
# 下载进度
progress = 0
with open(save_path, 'wb') as file:
for data in response.iter_content(chunk_size=chunk_size):
# 写入文件
file.write(data)
# 更新下载进度
progress += len(data)
percentage = progress * 100 / total_size
print(f"Downloaded {progress}/{total_size} bytes ({percentage:.2f}%)", end='\r')
print(f"
Download completed: {save_path}")
# 要下载的资源URL
url = "http://example.com/file.txt"
# 保存的文件路径
save_path = "file.txt"
# 调用download()函数下载文件
download(url, save_path)
在这个例子中,download()函数接收两个参数:资源的URL和要保存的文件路径。它使用requests.get()函数来获取网络资源的响应。stream=True参数表示要以流的方式读取响应。
然后,函数获取文件的总大小,并设置每次读取的块大小。它使用response.iter_content()方法迭代地读取响应内容,并将数据写入文件。同时,它会根据下载进度更新并显示进度条。
最后,函数会在下载完成后打印出保存文件的路径。
需要注意的是,使用requests.get()函数下载大文件时,可以使用流的方式读取响应,并分块保存,以节省内存。这个例子中使用的stream=True参数就是实现这个功能的。
