如何用 Python 抓取並下載網站圖片

最後更新於 June 10, 2026
How to use Python to scrape and download website images tutorial graphic

網路已經變成一座視覺叢林——每天都有數十億張圖片被上傳,從電商型錄到爆紅迷因,幾乎無所不在。如果你在銷售、行銷或研究領域工作,想必都遇過要一張一張蒐集圖片的繁瑣流程。我也曾卡在「右鍵另存新檔」的無限迴圈裡,心想難道沒有更好的方法嗎?答案是:有。Python 圖片爬蟲,以及像 Thunderbit 這類免寫程式工具,正在改變所有需要大規模從網站下載圖片的人。

在這篇指南裡,我會帶你了解如何用 Python 進行網頁圖片爬取、如何處理棘手的動態網站,以及為什麼把 Python 和 Thunderbit 結合起來,能同時兼顧彈性與效率。不論你是在建立產品型錄、做競品分析,還是單純受夠了複製貼上,都能在這裡找到實用步驟、程式碼,還有幾個小小的笑點。

什麼是 Python 圖片爬蟲?

Python 圖片爬蟲,指的是一段程式碼或工具,會自動造訪網站、找出圖片檔案(例如 <img> 標籤中的圖片),並把它們下載到你的電腦上。你不需要一張一張手動存檔,Python 會幫你處理抓頁面、解析 HTML、批次儲存等繁重工作(Thunderbit Python Image Scraper Tutorial)。

誰會用 Python 圖片爬蟲?基本上,只要你需要大量圖片,而且越快越好,都適合:

  • 電商團隊:從供應商網站下載商品照片,用來建立型錄。
  • 行銷人員:蒐集社群圖片,做活動素材或趨勢分析。
  • 研究人員:為 AI/機器學習專案或學術研究建立資料集。
  • 房地產業者:整理物件照片,用於刊登或市場分析。

你可以把 Python 圖片爬蟲想成你的數位實習生——只不過它不會無聊,也不會被貓咪迷因分心。

為什麼用 Python 來爬取圖片?

python-image-scraping-benefits.png Python 是網頁爬取界的瑞士刀。以下是它成為圖片爬取首選的原因:

  • 豐富的函式庫生態:Requests、BeautifulSoup、Selenium 等工具,從基礎 HTML 到 JavaScript 很重的複雜網站都能應付(Oxylabs Python Web Scraping)。
  • 適合新手:Python 語法清楚易讀,網路上也有大量教學與社群支援。
  • 彈性高、可擴充:你可以只爬一頁,也能抓上千頁;不只能自動下載,下載後還能接著處理圖片。
  • 省時又省錢:有基準測試顯示,用 Python 抓 100 張圖片大約只要 12 分鐘,手動做則可能要 2 小時(Thunderbit Python Image Scraper Tutorial)。

下面快速看看常見的商業應用:

使用情境手動處理的痛點Python 爬蟲的優勢
產品型錄整理大量複製貼上,非常耗時幾分鐘內下載成千上萬張圖片
競品分析細節容易漏看,效率低批次並排比較圖片
趨勢研究資料集不完整蒐集大量且多樣的圖片樣本
AI/ML 資料集建立標註流程枯燥自動蒐集並為訓練做前置整理
房地產物件刊登資料零散、更新不即時方便集中管理並快速更新照片

Python 圖片爬取必備工具

先來拆解一下 Python 圖片爬取常用工具:

函式庫功能說明最適合的場景優點缺點
Requests透過 HTTP 抓取網頁與圖片靜態網站簡單、速度快不負責 HTML 解析,也不支援 JS
BeautifulSoup解析 HTML 並找出 <img> 標籤擷取圖片網址好上手、容錯性高不支援 JS
Scrapy功能完整的爬蟲/爬行框架大型專案原生支援 async/await(2.14+)、內建匯出學習曲線較陡峭
Selenium自動操作瀏覽器(可處理 JS、捲動等)動態/JavaScript 很重的網站可渲染 JS、模擬使用者行為速度較慢、設定較多
Pillow (PIL)下載後的圖片處理驗證/編修圖片可縮放、轉檔、檢查圖片本身不是用來爬取

什麼情況用什麼?

  • 多數靜態網站:requests + BeautifulSoup 就很夠用。
  • 動態網站(無限捲動、JS 圖庫):Selenium 會更可靠。
  • 大型、重複性高的專案:Scrapy 結構清楚、速度也快。
  • 圖片後處理:Pillow 能幫你把下載回來的圖片整理得更乾淨。

步驟教學:用 Python 從網站下載圖片

現在就來實作看看。以下示範如何用 Python 從靜態網站下載圖片。

建立 Python 環境

先確認你已安裝 Python 3。接著建立虛擬環境(可選,但建議):

python3 -m venv venv
source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate

安裝需要的函式庫:

pip install requests beautifulsoup4

找出並擷取圖片網址

在瀏覽器中打開目標網站,右鍵選「檢查」,找到 <img> 標籤——那就是我們要抓的目標。

以下是一段用來抓取並解析圖片網址的範例程式:

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

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

img_tags = soup.find_all("img")
img_urls = [urljoin(url, img.get("src")) for img in img_tags if img.get("src")]

小技巧: 有些網站會用 data-srcsrcset 來載入延遲圖片,記得也檢查這些屬性。

下載並儲存圖片

接下來把圖片存到資料夾裡:

os.makedirs("images", exist_ok=True)

for i, img_url in enumerate(img_urls):
    try:
        img_resp = requests.get(img_url, headers={"User-Agent": "Mozilla/5.0"})
        if img_resp.status_code == 200:
            file_ext = img_url.split('.')[-1].split('?')[0]
            file_name = f"images/img_{i}.{file_ext}"
            with open(file_name, "wb") as f:
                f.write(img_resp.content)
            print(f"Downloaded {file_name}")
    except Exception as e:
        print(f"Failed to download {img_url}: {e}")

整理建議:

  • 如果可以,檔名最好用商品 ID 或頁面標題來命名。
  • 不同類別或來源可以分資料夾存放。
  • 儲存前先檢查是否重複(比對網址或使用雜湊值)。

常見錯誤與排除方式

  • 找不到圖片? 可能是透過 JavaScript 載入,請看下一節。
  • 請求被阻擋? 設定真實一點的 User-Agent,並在下載之間加入 time.sleep() 延遲。
  • 重複下載? 建立一個已看過的網址集合或檔名清單。
  • 權限錯誤? 確認你的程式有目標資料夾的寫入權限。

如何爬取動態網站與 JavaScript 重頁面上的圖片

有些網站很愛和圖片玩捉迷藏——用 JavaScript、無限捲動,或「載入更多」按鈕來顯示圖片。這時就可以用 Selenium 來處理。

使用 Selenium 抓取動態內容

安裝 Selenium:

pip install selenium

就這麼簡單——從 Selenium 4.6 開始,第一次啟動瀏覽器時 Selenium Manager 會自動幫你找好相容的 ChromeDriver,所以不必自己手動下載或設定 PATH。(如果你因某些原因還停留在 Selenium <4.6,請從 Chrome for Testing 下載二進位檔。)

以下是基本的 Selenium 範例:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import os

driver = webdriver.Chrome()
driver.get("https://example.com/gallery")

# 捲到最底部,載入更多圖片
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)  # 等待圖片載入
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height

img_elements = driver.find_elements(By.TAG_NAME, "img")
img_urls = [img.get_attribute("src") for img in img_elements if img.get_attribute("src")]

os.makedirs("dynamic_images", exist_ok=True)
for i, img_url in enumerate(img_urls):
    # (下載邏輯同前)
    pass

driver.quit()

進階技巧:

  • WebDriverWait 等待圖片真正出現。
  • 如果網站需要點擊才會顯示圖片,可以用 element.click()

替代方案: 像 Playwright(Python bindings)這類工具,對複雜網站可能更快也更穩定(Scrapfly Guide)。

免寫程式替代方案:用 Thunderbit 抓取網站圖片

不是每個人都想跟程式碼或瀏覽器驅動程式纏鬥。這就是 Thunderbit 登場的時候——它是一款免寫程式、AI 驅動的網頁爬蟲 Chrome 擴充功能,讓擷取圖片像叫外送一樣簡單。

如何使用 Thunderbit 擷取圖片 Get Started Free

如何用 Thunderbit 擷取圖片

  1. 安裝 Thunderbit:取得 Thunderbit Chrome 擴充功能
  2. 打開目標網站:前往你要抓圖的頁面。
  3. 啟動 Thunderbit:點擊擴充功能圖示打開側邊欄。
  4. AI 建議欄位:點選「AI Suggest Fields」——Thunderbit 的 AI 會掃描頁面,自動偵測圖片,並替你建立一個「Image」欄位(Thunderbit Image Scraping Guide)。
  5. 開始爬取:按下「Scrape」。Thunderbit 會把所有圖片抓下來,包含子頁面與無限捲動內容。
  6. 匯出:可直接下載圖片網址或檔案到 Excel、Google Sheets、Notion、Airtable 或 CSV,而且免費方案也不另外收費。

免費試用 Thunderbit 圖片提取器

加碼福利: Thunderbit 的免費 Image Extractor 可以一鍵抓出頁面上的所有圖片網址(Thunderbit Python Image Scraper Tutorial)。

Thunderbit 的優勢:

  • 不需要寫程式,也不需要懂 HTML。
  • 可自動處理動態內容、子頁面與分頁。
  • 匯出即時且不限次數(即使是免費方案)。
  • AI 會自動適應網站變動,不用老是維護腳本。

結合 Python 與 Thunderbit:兩者兼得

python-thunderbit-hybrid-workflow-diagram.png 我最喜歡的流程是:用 Thunderbit 快速、免寫程式地擷取圖片,再用 Python 做客製化處理或自動化。

範例情境:

  • 型錄建立:先用 Thunderbit 從難抓的網站擷取圖片,再用 Python 整理、重新命名或處理檔案。
  • AI 資料集製作:Thunderbit 從多個來源抓圖;Python 腳本再進行篩選、標註或資料增強。
  • 銷售研究:Python 先爬取一批公司網址,Thunderbit 再從每個網站擷取圖片、電子郵件或電話。

流程清單:

  1. 用 Thunderbit 爬取圖片並匯出成 CSV。
  2. 在 Python 中載入 CSV 做進一步分析或自動化。
  3. 將多來源資料整合成統一報表。

這種混合式流程讓你同時擁有速度、彈性,以及處理幾乎所有網頁圖片爬取難題的能力。

Python 圖片爬取的除錯與最佳實務

常見問題:

  • 請求被封鎖:設定 User-Agent、加上延遲,並遵守 robots.txt
  • 圖片缺失:檢查是否是 JS 載入內容——可用 Selenium 或 Thunderbit。
  • 重複下載:追蹤已看過的網址,或使用檔案雜湊值。
  • 檔案損毀:下載後用 Pillow 驗證圖片是否正常。

最佳實務:

  • 用清楚的資料夾結構整理圖片(依網站、類別或日期分類)。
  • 採用有描述性的檔名(如商品 ID、頁面標題)。
  • 透過檔案大小或尺寸篩掉不相關圖片(例如廣告、圖示)。
  • 在爬取圖片前,務必確認版權與服務條款(Grepsr Image Scraping Guide)。

比較 Python 圖片爬蟲方案:程式碼 vs. 免寫程式

下面來看一下各種方案的比較:

比較項目Python(Requests/BS)Selenium(Python)Thunderbit(免寫程式)
易用性中等(需要寫程式)較難(要寫程式+瀏覽器自動化)非常簡單(點選+AI)
動態內容
設定時間較長(安裝、寫程式)較長(驅動程式、程式碼)很短(安裝擴充功能即可)
擴充性需手動(可平行化)較慢(瀏覽器負擔較大)很高(雲端爬取,一次 50 頁)
維護成本高(網站一變就容易壞)低(AI 自動適應)
匯出選項客製化(CSV、資料庫)客製化一鍵匯出到 Excel、Sheets、Notion 等
成本免費(開源)免費有免費方案,高用量付費

結論: 如果你熱愛寫程式,也需要完全掌控流程,Python 幾乎無敵。若你更在意速度、簡單與動態網站處理,Thunderbit 會非常省事。多數團隊其實把兩者搭配使用,效果最好。

結論與重點整理

網路上的視覺內容爆炸成長,讓圖片資料比以往更有價值,也更令人手忙腳亂。Python 圖片爬蟲給你自動下載的能力與彈性,而 Thunderbit 這類免寫程式工具,則讓圖片爬取變得人人都能上手。

重點整理:

  • 靜態網站與客製化流程,使用 Python(Requests + BeautifulSoup)。
  • 動態、JavaScript 很重的頁面,使用 Selenium。
  • 想快速免寫程式擷取,尤其是難處理的網站,或需要立即匯出到 Excel、Google Sheets、Notion 時,使用 Thunderbit。
  • 把兩者結合,打造最強工作流:Thunderbit 負責資料蒐集,Python 負責處理與自動化。

準備好升級你的圖片爬取能力了嗎?Python 這一邊已經友善許多——Selenium Manager 幫你省去過去最麻煩的驅動程式下載,而 Scrapy 2.14 也終於原生支援 async——所以一支 30 行的腳本,現在真的可能 10 分鐘就能完成。或者你也可以直接跳過寫程式,先 免費安裝 Thunderbit。想深入了解,可以參考 Thunderbit BlogPython Image Scraper Tutorial


試用 Thunderbit AI 圖片爬蟲 Get Started Free

祝你爬取順利——也希望你的圖片資料夾永遠井然有序!

常見問題

1. 什麼是 Python 圖片爬蟲?
Python 圖片爬蟲是一段程式或工具,會自動造訪網站、找出圖片檔案(通常在 <img> 標籤中),並下載到你的電腦上。這樣你就不用一張一張手動存檔。

2. 哪些 Python 函式庫最適合用來爬取圖片?
最常用的函式庫包括 Requests(抓取網頁)、BeautifulSoup(解析 HTML)、Selenium(處理動態內容)以及 Pillow(下載後的圖片處理)。

3. 如何爬取 JavaScript 很重或無限捲動網站上的圖片?
可以用 Selenium 自動操作瀏覽器、捲動頁面,等內容載入完成後再擷取圖片網址。Thunderbit 也能靠 AI 自動處理動態內容。

4. 有免寫程式的方法可以爬取網站圖片嗎?
有!Thunderbit 是一款免寫程式的 Chrome 擴充功能,會用 AI 偵測並擷取任何網站上的圖片。你只要點一點,就能匯出到 Excel、Google Sheets、Notion 或 Airtable。

5. 可以把 Python 和 Thunderbit 結合起來做圖片爬取嗎?
當然可以。Thunderbit 適合快速、免寫程式擷取;Python 則適合進階處理或自動化。先從 Thunderbit 匯出資料,再用 Python 腳本進一步處理,就能同時享受兩者優點。

延伸閱讀

Shuai Guan
Shuai Guan
Thunderbit 執行長|AI 資料自動化專家 Shuai Guan 是 Thunderbit 的執行長,畢業於密西根大學工程學院。憑藉近十年在科技與 SaaS 架構領域的經驗,他專注於把複雜的 AI 模型轉化為實用、免程式碼的資料擷取工具。在這個部落格中,他分享經過實戰驗證、毫無保留的網頁爬取與自動化策略見解,幫助你打造更聰明、以數據驅動的工作流程。當他不在優化資料流程時,也會把同樣的細膩與專注投入到攝影興趣中。
Topics
Python 圖片爬蟲Python 網頁圖片抓取Python 從網站下載圖片
目錄

只要提問,就能抓取網頁

用白話告訴它你要什麼,或者更好,什麼都不用說。

立即體驗 Thunderbit free
使用 AI 擷取資料
輕鬆將資料轉移到 Google Sheets、Airtable 或 Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week