用 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 幫你當生活助理。
留言
張貼留言