下载网络图片,并验证是否下载成功,如果没有下载成功,重试下载,重试次数不超过5次。
import requests
def download_image(url, retries=5):
for i in range(retries):
try:
response = requests.get(url)
response.raise_for_status() # 检查响应是否成功
content = response.content
with open('image.jpg', 'wb') as file:
file.write(content)
print("图片下载成功!")
return True
except requests.exceptions.RequestException as e:
print("图片下载失败,重试中...")
print("图片下载失败!")
return False
# 测试示例
url = "https://example.com/image.jpg"
success = download_image(url)
if not success:
print("尝试下载失败,请检查网络连接或图片链接是否有效。")
在这个示例中,我们定义了一个名为 download_image 的函数,它接受一个参数 url 表示要下载的图片的链接,以及一个可选的参数 retries 表示最大重试次数,默认为 5。在函数中,我们使用 requests 库发送 GET 请求获取图片内容,并将内容写入到名为 image.jpg 的文件中。然后,我们使用 raise_for_status() 方法检查响应是否成功。如果下载成功,我们将打印成功的消息,并返回 True。如果下载不成功,我们将打印失败的消息,并在重试次数未达到上限时进行重试。最后,如果重试次数超过上限仍未成功下载,我们将返回 False。
在测试示例中,我们将图片的链接传递给 download_image 函数进行下载。如果下载成功,我们将打印成功消息。如果下载不成功,则打印失败消息,并建议检查网络连接或图片链接的有效性。
请注意,这只是一个示例代码,你可以根据实际需求进行修改和优化。例如,你可以添加更多的错误处理逻辑、日志记录等来提高下载的健壮性。