用 Python 寫一個自動下載圖片的小工具

你是不是常常想下載一整組漂亮的圖片、桌布、或插畫,但一張一張存太麻煩?
今天,我們要寫一個小程式,讓電腦自動幫你下載整個網站上的圖片!

不需要懂程式,只要有 ChatGPT 和 Python,10 分鐘就能搞定。


📦 我們要達成的功能

  • 輸入一個網址
  • 自動找出該頁所有圖片
  • 把圖片下載到電腦資料夾

範例:輸入 Pixabay、Unsplash、或某個圖片素材頁的網址,程式就會幫你全存下來。


🧩 第一步:準備工具

跟前幾篇一樣,請先安裝 Python
安裝後打開命令提示字元,輸入:

python --version

顯示出版本號(例如 3.12.2)就 OK 了。

然後我們要安裝兩個 Python 套件(library):

pip install requests beautifulsoup4

這兩個是用來「抓網頁」和「解析 HTML」的好幫手。


🤖 第二步:請 ChatGPT 幫你寫程式

輸入提示詞:

請用 Python 寫一個自動下載網站圖片的程式。
要求:
- 輸入一個網址
- 自動抓取所有圖片網址
- 將圖片下載到 "images" 資料夾

ChatGPT 會生成這段程式👇

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

# 使用者輸入網址
url = input("請輸入網站網址:")

# 建立存放圖片的資料夾
os.makedirs("images", exist_ok=True)

# 取得網頁內容
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 找出所有 <img> 標籤
images = soup.find_all("img")

count = 0
for img in images:
    src = img.get("src")
    if not src:
        continue
    # 將相對路徑轉成絕對路徑
    img_url = urljoin(url, src)
    filename = os.path.join("images", os.path.basename(img_url.split("?")[0]))
    
    # 嘗試下載
    try:
        img_data = requests.get(img_url).content
        with open(filename, "wb") as f:
            f.write(img_data)
        count += 1
        print(f"✔ 已下載:{filename}")
    except Exception as e:
        print(f"❌ 無法下載:{img_url},原因:{e}")

print(f"✅ 全部下載完成,共 {count} 張圖片。")

🧠 第三步:實際運行

1️⃣ 打開記事本,貼上程式碼
2️⃣ 儲存為 download_images.py
3️⃣ 雙擊或在命令提示字元輸入:

python download_images.py

輸入你想下載的網站,例如:

https://unsplash.com/t/nature

幾秒後,程式會在你資料夾中自動建立一個 images 資料夾,裡面全是從該頁抓下的圖片!


🧱 進階小技巧

  • 想只抓特定格式(如 .jpg)可在程式中加判斷 if src.endswith(".jpg"):
  • 想加下載進度條?可安裝 tqdm 套件。
  • 想同時下載多個網址?把 url = input() 改成網址清單。
  • 搭配 ChatGPT 修改程式,你能快速學會「小爬蟲思維」。

🌱 結語

這就是你的第一個「自動化爬蟲」程式。從這裡開始,你可以讓電腦替你大量抓資料、下載素材、甚至整理成資料庫。

重點不是背程式,而是學會「讓 ChatGPT 幫你做」。你只需要提出清楚的要求、理解輸出結果、勇敢去試。

下一篇,我們將挑戰:自動發送 Email 提醒自己重要事項 📧,讓 Python 幫你當生活助理。

留言

這個網誌中的熱門文章

我創造了一門新的語言

使用內網穿透技術優化星露谷物語聯機體驗

談戀愛不是靠運氣,是一種能學會的溝通力