乐于分享
好东西不私藏

Day10:批量下载文件:一键下载网页上的所有图片和文档

Day10:批量下载文件:一键下载网页上的所有图片和文档

网页上有十几张想要的图片,或者好几个PDF文档需要保存。右键另存为,一个一个点,手都酸了,还容易漏。

今天用AI写个小工具,把这些重复劳动全自动化。

场景:真实的痛点

上周从产品官网下载30多张产品图。右键、另存为、选文件夹、确定,重复30多次。每张图还要手动改名字,不然全是 “product-1.jpg”、”product-2.jpg” 这种随机字符。

有些图片点开是大图,有些是缩略图,得逐个点进去确认。花了快40分钟。

这种重复劳动,不该交给程序吗?

解决思路

“我不会写代码。”

没关系,有AI。描述清楚需求,AI生成代码。

思路:

  1. 告诉AI要下载什么类型的文件(图片、PDF、文档等)
  2. AI生成Python脚本
  3. 运行脚本,自动下载

你只需要复制粘贴代码,然后运行。

实操步骤

第一步:准备环境

安装Python(没有的话)。去Python官网下载安装包,一路下一步。安装时勾选 “Add Python to PATH”,命令行就能直接用了。

第二步:向AI描述需求

打开AI工具(ChatGPT、Claude、Gemini都行),输入需求:

我需要一个批量下载工具。网页地址是:https://example.com/products[1]

请帮我:

  1. 找出这个页面上所有的图片链接
  2. 自动下载所有图片到指定文件夹
  3. 用图片的alt文字或标题作为文件名
  4. 显示下载进度

请用Python写,使用requests和BeautifulSoup库。

AI会生成代码,大概长这样:

import requests
from bs4 import BeautifulSoup
import os
from urllib.parse import urljoin

def download_images(url, folder='downloads'):
    # 创建下载文件夹
    if not os.path.exists(folder):
        os.makedirs(folder)
    
    # 获取网页内容
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 找到所有图片
    images = soup.find_all('img')
    
    for i, img in enumerate(images):
        img_url = img.get('src')
        if not img_url:
            continue
        
        # 处理相对路径
        img_url = urljoin(url, img_url)
        
        # 获取文件名
        filename = img.get('alt'f'image_{i}')
        filename = f"{filename}.jpg".replace('/''_')
        
        # 下载图片
        print(f"正在下载: {filename}")
        img_data = requests.get(img_url).content
        
        with open(os.path.join(folder, filename), 'wb'as f:
            f.write(img_data)
    
    print(f"完成!共下载 {len(images)} 张图片")

# 使用方法
download_images('https://example.com/products')

第三步:运行脚本

把代码保存成 downloader.py,打开命令行,输入:

python downloader.py

脚本开始工作。一行行 “正在下载…” 的提示,几秒钟后,所有图片都躺在文件夹里了。

第四步:按需调整

需求比较特殊?继续问AI:

  • “我想只下载大于500KB的图片”
  • “我想下载PDF文档而不是图片”
  • “网页需要登录才能访问,怎么办?”

AI会修改代码。复制新代码,替换旧的。

效果展示

用这个方法下载了博客网站的50张配图。原本要点50次右键、选50次文件夹、确认50次,至少20分钟。运行脚本,5秒搞定。

脚本自动处理:

  • 给文件起有意义的名字(不再是一串随机字符)
  • 跳过重复图片
  • 保留原始文件格式
  • 显示下载进度

脚本可以反复使用。下次遇到类似下载需求,改一下URL就能用。

延伸应用

学会思路,能做的事远不止下载图片:

批量下载PDF文档

把代码里的 img 换成 a 标签,筛选 .pdf 结尾的链接。

下载整个网页的素材

图片、CSS样式表、JavaScript文件,甚至整站克隆。

定时自动下载

配合Windows任务计划程序或Mac的crontab,定时运行脚本。每天自动下载某个网站更新的内容。

批量重命名

下载完,用Python的 os.rename() 批量改名字,比如加日期前缀。

核心要点

  1. 重复劳动交给程序,不要手动硬扛
  2. 不需要会写代码,AI写,你运行
  3. 描述需求要具体:什么网站、什么文件、存到哪、命名规则
  4. 脚本写好一次,反复用
  5. 遇到问题继续问AI,让它调整代码

那些机械重复的下载工作可以全自动化了。时间应该花在更有价值的事情上。