使用 Python 批量下载图片并保存指定名字

在互联网时代,图片作为信息传递的重要媒介,常常需要被批量下载和管理。Python 作为一种功能强大且高效的编程语言,提供了丰富的库来简化这个过程。本文将通过示例代码讲解如何使用 Python 批量下载图片,并将其保存为指定的文件名。

环境准备

在开始之前,请确保你已安装 Python 和以下库:

  • requests:用于发送 HTTP 请求。
  • os:用于文件和目录操作。
  • PIL(Pillow):用于图像处理。

你可以使用 pip 进行安装:

pip install requests Pillow
  • 1.

示例代码

下面的代码示例将展示如何批量下载图片。我们将以一个包含图片 URL 列表的 .txt 文件为例,下载这些图片并使用指定的文件名保存。

假设我们的 URL 文件名为 image_urls.txt,内容如下:




  • 1.
  • 2.
  • 3.

接下来,我们将编写 Python 程序来读取这些 URL,并将其下载保存为 img1.jpgimg2.jpgimg3.jpg

import os
import requests

# 创建文件夹来保存下载的图片
os.makedirs('downloaded_images', exist_ok=True)

# 从文件中读取图片 URL
with open('image_urls.txt', 'r') as file:
    urls = file.readlines()

# 批量下载图片
for index, url in enumerate(urls):
    url = url.strip()
    try:
        response = requests.get(url)
        response.raise_for_status()  # 检查请求是否成功
        filename = f"downloaded_images/img{index + 1}.jpg"  # 指定文件名
        with open(filename, 'wb') as img_file:
            img_file.write(response.content)  # 将内容写入文件
        print(f"下载 {filename} 成功!")
    except Exception as e:
        print(f"下载 {url} 失败:{e}")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
代码解析
  1. 导入库:使用 import 导入所需的库。
  2. 创建目录os.makedirs() 创建一个用于存放下载图片的文件夹,exist_ok=True 表示如果目录已存在,则不会报错。
  3. 读取文件:使用 with open() 语句安全地打开文件,并将其内容读取到 urls 列表中。
  4. 批量下载:使用 enumerate() 遍历图片 URL 列表,同时跟踪下标。对于每个 URL,使用 requests.get 发送请求并获取响应。如果请求成功,程序将响应内容写入以“img + index”命名的图片中。
  5. 异常处理:使用 try-except 结构捕获并处理可能发生的异常,以确保程序的健壮性。

数据分析与可视化

在下载后,你可能想对下载的图片进行分析。在这里,我们举一个简单的例子:假设我们想统计下载成功与失败的图片数量。我们可以用饼状图来可视化这些数据。

下载图片情况 75% 25% 下载图片情况 成功 失败

在这个例子中,假设我们成功下载了三张图片,但有一张下载失败。通过这种可视化,可以直观地了解下载的效果。

总结

本文通过一个简单的 Python 示例,演示了如何批量下载图片并以指定的文件名保存。代码简洁明了,易于理解,适合初学者进行实践。此外,通过简单的用例分析,我们展示了数据可视化的重要性。你可以根据自己的需求扩展这个示例,例如处理不同格式的图片、从数据库中获取 URL、添加多线程等。希望本文能为你提供一些启发,帮助你高效地管理和下载图片!