使用PythonWeb客户端工具WebClient()进行网络资源下载
发布时间:2023-12-28 07:11:37
Python的标准库中没有提供Web客户端工具,但是可以使用第三方库,比如requests,来进行网络资源下载。
requests是一个优雅且简洁的HTTP库,可以方便地发送HTTP请求和处理HTTP响应。它提供了很多方便的函数和方法,可以满足绝大部分的HTTP请求需求。
下面是一个使用requests库进行网络资源下载的例子:
import requests
def download_file(url, save_path):
response = requests.get(url, stream=True) # 发送GET请求,并指定stream参数为True
response.raise_for_status() # 检查请求是否成功,如果失败会抛出异常
with open(save_path, 'wb') as file:
for chunk in response.iter_content(chunk_size=8192): # 按块读取响应内容
file.write(chunk) # 将每一块写入文件,以节省内存
print("文件下载完成!")
# 下载图片
url = 'https://example.com/image.jpg'
save_path = 'image.jpg'
download_file(url, save_path)
# 下载文件
file_url = 'https://example.com/file.pdf'
save_path = 'file.pdf'
download_file(file_url, save_path)
上述代码中,首先导入了requests库。然后定义了一个函数download_file(),该函数接受一个URL和保存路径作为参数,用来下载网络资源。在函数内部,使用requests.get()发送GET请求,设置stream=True参数来启用数据流模式。然后使用raise_for_status()方法检查请求是否成功,如果失败会抛出异常。
接下来,使用with open()语句打开一个文件来保存下载的内容,设置文件模式为二进制写入。
然后使用response.iter_content()方法按块读取响应内容,每次读取的块大小为8192字节,并将每一块写入文件,以节省内存。
最后,当下载完成后,打印出一条完成的提示信息。
可以通过传入不同的URL和保存路径,使用上述函数下载不同的网络资源。
