Gemini 網頁爬蟲實戰指南:程式與無程式碼都能用

最後更新於 April 15, 2026
Gemini 網頁爬蟲實戰指南:程式與無程式碼都能用

多數「gemini web scraping」教學讀起來都像是寫給同一種人看的:已經有 Python 開發環境、Pydantic schema,還對 async 函式庫很有主見的工程師。如果你就是這類人,那太好了——我們等一下就會講到程式碼。但如果你是做業務、行銷或電商營運,只是想從一堆網頁裡拿到結構化資料,卻不想先去搞懂 markdownify 是什麼,那你絕對不是少數。

Gemini 是 Google 的多模態 AI 模型家族,也正快速成為網頁資料擷取的熱門選擇之一。2025 年 Stack Overflow 開發者調查指出,84% 的開發者 正在使用或準備使用 AI 工具,而由 LLM 驅動的爬取正是這波趨勢的重要一環。不過,「單一網址的酷炫 Demo」和「能處理分頁、子頁面、防機器人封鎖與凌亂 HTML 的正式流程」之間,差距其實很大。這篇指南會同時涵蓋 Python 程式路線與無程式碼路線,透過實際的 token 計算說明模型怎麼選,帶你處理多頁爬取——這也是很多教學會跳過的關鍵步驟——並誠實說明 Gemini 爬取會在哪些地方失效。看完之後,你會知道哪條路最適合你的工作流程,以及如何避開我看過開發者和商務使用者都踩過的坑。

什麼是 Gemini 網頁爬蟲?

Gemini 網頁爬蟲,指的是把某個網頁的內容——可以是 HTML、Markdown,甚至截圖——送進 Google 的 Gemini AI 模型,讓模型理解頁面內容並回傳結構化資料。沒有 CSS selector。沒有 XPath。也沒有那種網站只要一改版就全壞掉的脆弱規則。

核心流程大致如下:

  1. 抓取頁面(可用 requests、無頭瀏覽器或 Chrome 擴充功能)
  2. 清理並轉換內容(通常是 HTML → Markdown,以降低 token 成本)
  3. 送入 Gemini,並附上描述你想要欄位的 schema
  4. 接收結構化 JSON,可直接用於試算表、CRM 或資料庫

這跟傳統使用 BeautifulSoup 或 Selenium 的爬蟲很不一樣:你必須手寫 selector,例如 div.product-title > span.price,還得祈禱網站下週不會改版。Gemini 的讀法更接近人類——它能理解上下文、適應版面變動,並在沒有自訂規則的情況下處理混亂格式。

還有一點值得注意:Gemini 天生就是多模態模型。它能在同一個請求中處理文字、圖片、影片、音訊、PDF 和程式碼。這也開啟了很多其他 LLM 做不到的爬取方式,例如直接送截圖而不是 HTML。我們後面會談到這一點。

為什麼 Gemini 網頁爬蟲對商務團隊很重要?

如果你在想,為什麼行銷經理或電商分析師需要關心 LLM 和網頁爬蟲,答案很簡單:它能省下驚人的時間,而且網站一更新也不會立刻壞掉。

網頁爬蟲軟體市場預計將成長,從 2025 年約 10 億美元一路增長到 2030 年超過 20 億美元,而 AI 驅動的擷取是成長最快的區塊。這不是炒作,而是真實反映了團隊蒐集資料方式的轉變。

以下是 Gemini 爬取在日常商務工作流程中的實際用途:

使用情境爬取內容受益對象
名單開發名錄、LinkedIn(公開頁面)、公司網站上的聯絡資訊業務、BDR
競品價格監控商品價格、庫存狀態、促銷資訊電商、定價團隊
商品目錄擷取品名、規格、圖片、評論商品企劃、市集營運
房地產列表整理物件資訊、價格、房仲資料房仲、投資人
內容彙整新聞、部落格文章、社群提及行銷、公關
招募市場研究職稱、薪資、地點人資、招募團隊

實際上的好處有兩個。第一,你不用反覆撰寫、測試、除錯解析腳本——模型每次都會重新讀取頁面。第二,網站只要多了一個 <div>,你也不用每次都找工程師來重寫。Gemini 的免費額度幾乎等於零成本試驗,適合小規模任務:Flash-Lite 約每天 1,000 次請求、Pro 約每天 100 次,而且不需要信用卡。

該選哪個 Gemini 模型?(Flash Lite、Flash、Pro)

不是所有 Gemini 模型都適合爬蟲。這是我希望每篇教學都會寫清楚的實務比較,因為選錯等級,不是浪費錢,就是拿到一堆垃圾資料。

目前三個 Gemini 2.5 模型都共享 1,048,576 token 的上下文視窗,而且都是多模態。差異主要在成本、速度,以及處理複雜擷取的能力。

模型輸入成本(每 100 萬 token)輸出成本(每 100 萬 token)適合用途複雜 schema 準確度速度
Gemini 2.5 Flash Lite約 $0.025約 $0.10簡單、扁平化資料,大量任務⚠️ 面對巢狀/可選欄位較吃力最快
Gemini 2.5 Flash約 $0.075約 $0.625多數爬取任務✅ 結構化擷取表現佳
Gemini 2.5 Pro約 $0.3125約 $2.50複雜巢狀 schema、特殊案例✅ 準確度最佳最慢

(價格資料來自 Gemini Developer API。Batch API 為以上費率的 50% 折扣。)

Gemini 2.5 Flash Lite:快又便宜,但要注意缺漏

Flash Lite 是預算型選擇。非常適合簡單、扁平的資料——像是商品名稱、價格、單層列表——而且可以高吞吐量處理。不過,它在可選欄位、時間戳和巢狀資料上有已知問題。Google 論壇上一位開發者曾回報,當 schema 包含非必要屬性時,Flash Lite 會「完全失控」,一直輸出重複文字直到達到 token 上限。如果你的 schema 超過兩層巢狀,或某些頁面可能缺少欄位,Flash Lite 會非常耗 token,也會很磨人。

Gemini 2.5 Flash:大多數爬取任務的甜蜜點

如果是我開始做任何真正的爬取工作,我會先從 Flash 下手。它對結構化擷取處理得很好,也能處理分頁邏輯;雖然輸入成本大約比 Flash Lite 高 3 倍,但準確度的提升很值得。在 GPQA 等級推理基準 中,Flash 的表現和 Pro 差距不大,代表它很能應付爬蟲真正需要的推斷、標準化與扁平化工作。

Gemini 2.5 Pro:處理複雜資料時的最高準確度選擇

Pro 是精準型工具。當你要擷取深度巢狀 schema(例如:商品規格包含多組變體,每組又有尺寸、顏色和價格),或任何不能接受虛構欄位的資料(法律、金融、醫療),就該用它。它的輸入成本大約是 Flash Lite 的 12 倍,所以適合把準確度看得比價格更重要的任務。

成本實例:10,000 個商品頁面

假設你先把 HTML 預處理成 Markdown(這一步一定要做,下面會再說明),一般商品頁的 token 量會從原始 HTML 的約 20,000 tokens 降到 Markdown 的約 4,000 tokens。每頁輸出的 JSON 約 500 tokens。

模型輸入成本(4,000 萬 token)輸出成本(500 萬 token)10K 頁總成本
Flash Lite$1.00$0.50約 $1.50
Flash$3.00$3.13約 $6.13
Pro$12.50$12.50約 $25.00

如果不做 Markdown 預處理,而是直接餵原始 HTML(約 2 億 token 輸入),成本會暴增 4–5 倍。預處理是整個流程裡最有槓桿效益的一步。

程式碼 vs. 無程式碼:Gemini 網頁爬蟲的兩條路

這裡就是分岔點。如果你是開發者、要自己打造客製化流程,Python + Gemini API 會給你最大控制權。如果你是商務使用者、現在就要資料,而且不想碰終端機,那無程式碼 AI 爬蟲會更快。

比較項目Gemini API(Python)Thunderbit(無程式碼)
設定時間15–30 分鐘(環境、金鑰、函式庫)少於 1 分鐘(安裝 Chrome 擴充功能)
是否需要寫程式需要(Python、Pydantic)不需要
分頁處理手動撰寫程式內建(點擊式分頁或無限捲動)
子頁面補強需為每個網站寫客製化程式一鍵「爬取子頁面」
Token 成本管理手動處理(HTML 清理、模型選擇)由 AI 引擎自動處理
匯出選項透過程式匯出 JSON/CSVExcel、Google Sheets、Airtable、Notion
最適合要打造自訂流程的開發者需要立即取得資料的商務使用者

Thunderbit 是我們在 Thunderbit 推出的無程式碼方案——一個 Chrome 擴充功能,底層使用 AI(包含 Gemini、ChatGPT、Claude 等)來建議欄位、兩步完成爬取,並匯出到你想用的工具。下面我會把兩條路都講一遍。

如果你是以試算表為中心的使用者,Quadratic 也是值得認識的選項——它是一款 AI 試算表,可以在表格內直接執行 Gemini 驅動的網頁爬取。不過,如果你的工作流程起點是一個已知的網頁(例如商品列表、名錄、名單資料庫),Thunderbit 會更貼近使用者的直覺。

逐步教學:用 Python 做 Gemini 網頁爬蟲

這一段是寫給開發者的。如果你想看無程式碼路線,請直接跳到後面。

開始前須知:

  • 難度: 中階(需要熟悉 Python)
  • 時間需求: 第一次爬取約 20–30 分鐘
  • 你需要準備: Python 3.10+、Google AI Studio 帳號(免費)、目標網址

第 1 步:建立 Python 環境與 Gemini API 金鑰

先建立專案資料夾與虛擬環境,接著安裝所需函式庫:

mkdir gemini-scraper && cd gemini-scraper
python -m venv venv && source venv/bin/activate
pip install -U google-genai requests beautifulsoup4 markdownify pydantic

重要提醒: 到 2026 年唯一正確的 SDK 是 google-genai。舊版 google-generativeai 已在 2025-11-30 結束支援,現在屬於 deprecated。如果你在教學裡看到 import google.generativeai as genai,那段程式已經過時了。

接著前往 Google AI Studio 取得 API 金鑰。點選「Get API Key」,建立新的 key,並把它存成環境變數:

export GEMINI_API_KEY="your-key-here"

做到這裡,你就已經有一個可用的 Python 環境,依賴套件都安裝好了,API 金鑰也準備完成。

第 2 步:抓取目標頁面的 HTML

使用 requests 抓頁面。這裡以商品頁為例:

import requests

url = "https://example.com/product/widget-pro"
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
html = response.text

如果網站大量依賴 JavaScript 渲染,或有防機器人保護,requests.get() 可能只會拿到空殼頁面或 403。這部分的應對方式會在限制章節說明——不過對很多公開網站來說,這樣已經夠用了。

第 3 步:清理 HTML 並轉成 Markdown

這是多數教學會提到、卻很少量化的一步。一般商品頁的原始 HTML 大約有 20,000 tokens。經過 BeautifulSoup 清理和 Markdown 轉換後,通常只剩約 765–4,000 tokens,等於 減少 5–10 倍 的 token,實際上能省錢,也能降低幻覺。

from bs4 import BeautifulSoup
from markdownify import markdownify

soup = BeautifulSoup(html, "html.parser")
main = soup.select_one("main") or soup  # 只抓主要內容區
markdown_content = markdownify(str(main))

select_one("main") 這行會移除頁首、頁尾、導覽列和腳本,避免浪費 token 也避免讓模型被雜訊干擾。如果網站沒有 <main> 標籤,可以試試 .product-detail#content,或任何包住實際資料的區塊。

做完這一步,你應該會拿到一段乾淨的 Markdown,只包含該頁有意義的內容。

第 4 步:定義資料 schema 並送給 Gemini

使用 Pydantic 定義你想要回傳的結構。google-genai SDK 可以直接把 Pydantic 的 BaseModel 當作 response_schema

from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    name: str
    price: str
    sku: str | None = None
    description: str
    sizes: list[str] = []
    colors: list[str] = []

client = genai.Client()  # 會從環境變數讀取 GEMINI_API_KEY

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=f"從這個頁面擷取商品資訊:\n\n{markdown_content}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)

product = response.parsed
print(product)

根據已知 bug 清單,有幾個坑要注意:

  • 不要在送給 Gemini 的 schema 裡使用 Field(default=...),API 會丟出 ValueError。應該改成在型別層級寫 sku: str | None = None
  • 巢狀層級不要太深(最多 3 層)。太深的 schema 會讓 Flash 和 Flash Lite 產生遞迴輸出或括號未關閉的問題。
  • 使用 Flash Lite 時,欄位最好都設為必填,並用空字串這類哨兵值代替省略,因為 Flash Lite 對可選欄位的處理並不穩定

做完這步後,你應該就會得到一個解析完成的 Product 物件,裡面是頁面的結構化資料。

第 5 步:匯出並儲存爬到的資料

把結果存成 JSON 或 CSV:

import json

with open("products.json", "w") as f:
    json.dump(product.model_dump(), f, indent=2)

如果要送進 Google Sheets,可以使用 gspread。若是資料庫,則可依你使用的 ORM 進行序列化。Gemini 的結構化輸出很乾淨,通常可以直接接到大多數下游工具。

逐步教學:不用寫程式的 Gemini 網頁爬蟲(使用 Thunderbit)

這條路適合商務使用者,或是不想為了臨時爬蟲腳本花太多時間的開發者。

開始前須知:

  • 難度: 初階
  • 時間需求: 第一次爬取約 5 分鐘
  • 你需要準備: Chrome 瀏覽器、Thunderbit 擴充功能(免費版可用)

第 1 步:安裝 Thunderbit Chrome 擴充功能

前往 Chrome 線上應用程式商店 並點選「加到 Chrome」。用你的 Email 註冊,整個過程不到 1 分鐘。和上面 Python 的 15–30 分鐘設定相比,差很多。

第 2 步:打開目標頁面並點選「AI Suggest Fields」

前往你要爬取的網站——商品列表、房地產名錄、名單資料庫都可以。點擊瀏覽器工具列上的 Thunderbit 圖示,然後按下 「AI Suggest Fields」

Thunderbit 的 AI 會自動讀取頁面,並建議欄位名稱與資料類型,例如「Product Name」、「Price」、「Rating」、「Image URL」。你可以調整欄位名稱、刪除不需要的欄位,或是為每個欄位加入自訂 AI 提示詞(例如「分類為 High/Medium/Low」或「翻譯成英文」)。

在真正開始爬取前,你就能先看到已設定欄位的表格預覽。

第 3 步:點選「Scrape」並檢查結果

只要一次點擊。Thunderbit 會自動處理分頁——不管是按「Next」的點擊式分頁,還是無限捲動——並把資料擷取成結構化表格。你可以選擇:

  • 雲端爬取: 更快,可同時處理最多 50 頁。適合公開網站。
  • 瀏覽器爬取: 在你已登入的瀏覽器分頁中執行。適合需要登入的網站(CRM、限制存取的名錄、內部工具)。

結果會直接顯示在擴充功能側邊欄的表格中。匯出前先快速掃一下,看看有沒有明顯錯誤。

第 4 步:匯出到 Excel、Google Sheets、Airtable 或 Notion

點擊匯出按鈕,選擇你要的格式。Thunderbit 可直接匯出到 Excel、Google Sheets、Airtable 和 Notion,而且免費、不會擋在付費牆後面。圖片欄位也能直接上傳到 Notion 與 Airtable 的圖片庫,對於抓商品照片或頭像特別方便。

不用解析 JSON,不用寫腳本。資料拿到手就能直接使用。

使用 Gemini 做多頁與子頁面爬取

多數教學講到單一網址就悄悄結束了。但真實世界的爬蟲工作不會這麼簡單。

要抓 500 個有分頁、還帶詳細子頁面的商品頁,已經是一項完整任務了——而單一 URL Demo 跟這種實務情境之間的差距非常大。

用 Gemini API 處理分頁(程式路線)

如果是頁碼型 URL(最常見),就用迴圈一路抓到沒有結果為止:

import time

all_products = []
for page in range(1, 101):  # 最多 100 頁
    url = f"https://example.com/products?page={page}"
    md = fetch_clean(url)  # 前面做好的 HTML→Markdown 函式
    
    response = client.models.generate_content(
        model="gemini-2.5-flash-lite",  # 列表頁用便宜的就好
        contents=f"擷取商品名稱與網址:\n\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=list[ListingItem],
        ),
    )
    items = response.parsed
    if not items:
        break
    all_products.extend(items)
    time.sleep(4)  # 尊重免費額度的速率限制

對於 cursor-based 或無限捲動的網站,你需要先攔截前端呼叫的 XHR API(打開瀏覽器 Network 分頁查看),然後直接對那個 endpoint 做迴圈。這比重複渲染頁面便宜得多,而且只有在欄位需要 LLM 清理時才把資料送進 Gemini。

這裡要特別留意 token 成本——每一頁都會把帳單往上疊。列表頁用 Flash Lite 就好,只有在細節頁面擷取時才升級到 Flash。

用 Gemini 擷取子頁面以取得更豐富的資料(程式路線)

經典的兩階段模式:第一階段先從列表頁抓 URL,第二階段再逐一前往詳細頁抓更完整的資訊。

# 第一階段:用便宜的 Flash Lite 收集 URL
class Listing(BaseModel):
    product_urls: list[str]

listing = client.models.generate_content(
    model="gemini-2.5-flash-lite",
    contents=f"擷取商品網址:\n{listing_md}",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Listing,
    ),
).parsed

# 第二階段:用 Flash 擷取詳細資料
class ProductDetail(BaseModel):
    name: str
    price: str
    specs: dict[str, str]
    reviews: list[str]

for url in listing.product_urls:
    md = fetch_clean(url)
    detail = client.models.generate_content(
        model="gemini-2.5-flash",
        contents=f"擷取商品詳細資訊:\n{md}",
        config=types.GenerateContentConfig(
            response_mime_type="application/json",
            response_schema=ProductDetail,
        ),
    ).parsed
    # 儲存 detail...
    time.sleep(0.5)

這種做法可以運作,但周邊工作不少:URL 去重、錯誤處理、速率限制、重試機制、把原始 HTML 快取起來以便 schema 改動後不用重新抓。50 頁還算可控,但 5,000 頁就已經是在建基礎設施了。

無程式碼替代方案:Thunderbit 內建分頁與子頁面爬取

Thunderbit 會自動處理點擊式與無限捲動式分頁,不用你自己寫迴圈。若要補強子頁面,"Scrape Subpages" 功能會自動前往列表中每個詳細頁,並把更深入的欄位補進原始表格。只要點一下,不用寫腳本。

雲端爬取模式可同時處理最多 50 頁,對於抓商品目錄或房地產名錄這種大規模任務差很多。對於不想管理 Python 迴圈和重試邏輯的人來說,這會是最實際的選擇。(若想了解更多如何把網站資料抓進 Excel,我們另外有完整教學。)

截圖爬取:Gemini 的多模態捷徑

這裡有一個大多數教學完全忽略的做法:把網頁的截圖送到 Gemini 的 vision API,而不是直接送 HTML。有開發者回報,單張截圖只要約 258 tokens——跟即使已經清理過的 Markdown 相比,也便宜得多。對簡單擷取來說,這是一個很大的成本優勢。

如何使用 Gemini Vision API 做網頁爬取

先用 Playwright 擷取截圖、編碼,再送給 Gemini:

from playwright.sync_api import sync_playwright
from google import genai
from google.genai import types
from pydantic import BaseModel

class Product(BaseModel):
    title: str
    price: str

with sync_playwright() as p:
    page = p.chromium.launch().new_page()
    page.goto("https://example.com/product/widget-pro")
    page.wait_for_load_state("networkidle")
    png_bytes = page.screenshot(full_page=False)  # 只抓首屏

client = genai.Client()
resp = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        {"inline_data": {"mime_type": "image/png", "data": png_bytes}},
        "請把商品標題和價格擷取成 JSON。",
    ],
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=Product,
    ),
)
print(resp.parsed)

根據 Google 的圖片 token 說明,若圖片長寬都 ≤ 384 像素,成本是 258 tokens。更大的圖片會被切成 768×768 區塊,每塊 258 tokens。短的首屏截圖(258–1,600 tokens)很划算——但如果是很長的整頁截圖(約 5,000 tokens),反而可能比乾淨的 Markdown(約 765–1,200 tokens)更不划算。

截圖爬取的限制

  • 表格密集時精度較低: 多欄版面、小字體、元素重疊時,容易只讀到一部分——不是幻覺,而是標籤漏讀、欄位對不齊。
  • 不能點連結: Vision 會回傳文字,不會回傳可點擊的超連結。無法做分頁,也無法抓子頁面。
  • 解析度上限: 小於約 10px 的文字常常會辨識錯誤。Google 會將長邊縮到約 1,568 px。
  • 擷取成本較高: Playwright 啟動加上等待 network idle,每頁約要 2–5 秒,量大時會累積不少時間。

截圖爬取特別適合 JS 很重的頁面、被機器人封鎖的網站(requests.get() 會拿到 403,但瀏覽器能正常顯示),以及資料藏在圖表或圖片中的頁面。若是長篇、文字很多的頁面,Markdown 仍然更適合。

Thunderbit 的圖片與 PDF 爬取也採用類似的 AI vision 方法——直接丟圖片或 PDF,它就能回傳結構化表格,不需要自己處理截圖腳本或 base64。可延伸閱讀:如何將圖片轉成 Excel

Gemini 網頁爬蟲失效時怎麼辦?

Gemini 是擷取引擎,不是抓取引擎。如果你無法先把頁面內容送到 Gemini,它也幫不上忙。就是這麼直接。

有幾種常見情況會讓整個方法失敗,而大多數教學都把它們當附註帶過。我寧可直接講清楚。

限制會發生什麼事解法
防機器人/CloudflareAPI 請求被阻擋;requests.get() 回傳 403 或挑戰頁使用具 TLS 指紋輪替的代理,或改用瀏覽器型工具(Thunderbit 的瀏覽器爬取模式會使用你已登入的 session)
Token 視窗限制大頁面超出可用上下文(雖然技術上支援 1M,但可靠擷取通常約 200K–300K token)HTML→Markdown 清理、拆頁,或改用截圖
視覺內容幻覺Gemini 會根據 alt text 或 caption 猜內容,而不是看真實圖片驗證輸出;圖片資料請明確使用 vision API;加入 grounding 驗證器
API 速率限制大規模使用時會被節流——免費額度約 Pro 每天 100 次、Flash Lite 每天 1,000 次排隊管理、批次處理(50% 折扣),或改用現成工具
擷取不穩定(Lite 模型)可選欄位、時間戳和巢狀資料常被漏掉或亂編升級到 Flash/Pro,或加上更明確的 schema 約束
受保護網站(如 LinkedIn)回傳錯誤或空資料使用可在登入狀態下運作的瀏覽器型爬取(Thunderbit 支援);並遵守服務條款

這裡有幾點值得多補充。

防機器人現在已經會針對 LLM 進行辨識。 Cloudflare 從 2025 年 7 月起預設阻擋 AI 爬蟲,前五個月就擋下 4160 億次 AI bot 請求。Datadome 也在 2025 年加入 LLM 專用偵測,並看到 LLM bot 流量成長四倍。對受 Datadome 保護的網站來說,單純 requests.get() 加 Gemini 幾乎等於失效。問題不只是 IP,而是指紋;就算你換 IP,只要 TLS 指紋一看就是「Python requests」,還是會被擋。

幻覺問題很隱性。 受過「要幫助使用者」訓練的 LLM,往往會把可選欄位補成看似合理的內容,而不是回傳 null。我看過模型從 URL slug 推測品牌、從 TLD 猜貨幣,甚至從 skeleton loader 寫出看似合理但其實是假的評論數。可行的防護方式包括:嚴格的 Pydantic schema、帶驗證回饋的重試迴圈、檢查擷取值是否真的出現在來源 HTML 裡的 grounding 驗證器,以及雙階段擷取(Flash 擷取,Pro 抽樣驗證)。

1M 上下文視窗不代表可以真的用到 1M。 Chroma 的研究 與其他研究都指出,推理品質會在遠低於 token 上限時就開始下降。對結構化擷取來說,實務上的上限應該抓在約 200K–300K tokens。

決策樹:你該用哪個工具?

  • 低量 + 簡單頁面 + 開發者 → Gemini API 免費額度 + Python
  • 中量 + 複雜 schema + 開發者 → Gemini 2.5 Flash 付費版 + Python + 結構化輸出 + 預處理
  • 任何量 + 非開發者 + 需要登入或分頁很多Thunderbit
  • 超大量 + 強防機器人 + 關鍵任務 → 託管式爬蟲基礎設施(代理服務)+ Gemini 作為擷取層

Gemini 網頁爬蟲:省時省錢的小技巧

不管你是寫 Python 還是點按鈕,以下技巧都能幫你少走很多冤枉路。

  1. 在送進 Gemini 前,一律先把 HTML 預處理成 Markdown。 通常可省 5–10 倍 token,若再搭配 BeautifulSoup 先做裁切,省 95% 也有可能。
  2. 只用 google-genai 不要再用已停用的 google-generativeai 套件。
  3. Flash Lite 只適合扁平 schema 才開始用。 一旦出現巢狀結構或可選欄位,立刻升級到 Flash。
  4. 不要在傳給 Gemini 的 Pydantic schema 裡使用 Field(default=...) 改成在型別層級寫 sku: str | None = None
  5. Pydantic + response_schema 很關鍵。 它既是契約,也是避免幻覺的防線。
  6. 超過 1,000 頁的任務要用 Batch API 可打 50% 折扣,而且不會占用即時 RPM。
  7. 擴大量產前,先人工抽查 10–50 筆樣本。 準確度漂移往往在正式看資料前根本看不出來。
  8. 把原始 HTML 快取到磁碟。 schema 一改,不需要重新抓頁面。
  9. 每一列都保留來源 URL。 這樣之後只要重抓單頁,不必整批重跑。
  10. 如果你是無程式碼使用者:在 Thunderbit 的每個欄位使用自訂 AI 提示詞,把 prompt engineering 直接搬到試算表層級——可針對欄位做翻譯、分類、摘要。

還有一點:不要把免費額度直接上線到正式環境。 2025 年 12 月限額已經下修 50–80%,未來也可能在沒有通知的情況下再次調整。

結語

從單一 URL 的 Gemini Demo,到正式可用的生產流程,兩者之間的距離比大多數教學說的都大。

Python + Gemini API 路線,讓開發者可以完全掌控模型選擇、預處理、分頁與 schema 設計。無程式碼路線——像是 Thunderbit 這類工具——則讓商務使用者不用碰終端機,也能拿到同樣的結構化資料擷取能力。

我會整理成以下幾點:

  • 模型選擇很重要。 Flash Lite 適合大量任務,Flash 適合平衡,Pro 適合複雜場景。不要只選最便宜的,然後再納悶資料為什麼錯。
  • 多頁與子頁面爬取,才是教學常跳過、但真實工作真正會遇到的部分。 這篇涵蓋的兩條路線都有補上這個缺口。
  • 誠實面對限制,才能省時間。 如果網站會擋 API 請求,再好的 prompt engineering 都沒用。要選對工具,而不是選看起來最炫的工具。
  • 把 HTML 預處理成 Markdown,是最有槓桿效益的優化。 它不只可把成本降低 75% 以上,還能減少幻覺。

如果你想試試無程式碼路線,Thunderbit 的免費額度 讓你可以先爬幾個頁面,直接看看成果。如果你偏好寫程式,Gemini 的免費 API 額度也足夠你在一個下午內做出原型。無論哪一種,都會比手動複製貼上快得多。如果你想進一步了解如何把網站資料抓到 Excel最佳 AI 網頁爬蟲,我們部落格裡也有更完整的整理。

試試 Thunderbit 進行 AI 網頁爬取 Get Started Free

常見問題

使用 Gemini 做網頁爬蟲要多少錢?

Gemini API 有免費額度,大約是 Pro 每天 100 次、Flash 每天 500 次、Flash Lite 每天 1,000 次(以 2026 年初為準;這些限制在 2025 年 12 月已下調)。在付費方案下,若先把 HTML 預處理成 Markdown,抓 10,000 個商品頁大約要花 $1.50(Flash Lite)、$6(Flash)或 $25(Pro)。如果不做預處理,成本會跳高 4–5 倍。Batch API 也提供非即時任務 50% 折扣。

Gemini 可以爬需要登入的網站嗎?

Gemini API 本身不能登入網站——它只會處理你送給它的內容。你必須自己用已登入的 session 抓到 HTML(例如透過無頭瀏覽器與已保存的 cookies)。Thunderbit 的瀏覽器爬取模式可以原生處理這件事:它會在你已登入的 Chrome 分頁中執行,所以你在瀏覽器裡看得到的網站,Thunderbit 通常也能爬。

用 Gemini 網頁爬蟲合法嗎?

是否合法,要看網站的服務條款、資料類型,以及你所在的司法管轄區。在美國,hiQ v. LinkedInMeta v. Bright Data 之後,對公開可存取資料、且未登入狀態下的爬取,一般被認為是可接受的——但每個案例都要看具體事實。登入後頁面的爬取法律風險更高。歐盟使用者的個人資料,不論網站是否公開,都受 GDPR 規範。請務必遵守 robots.txt 和服務條款,並避免在沒有合法依據的情況下抓取個資。

我可以用 Gemini 爬動態、JavaScript 很重的網站嗎?

可以,但你必須先把 JavaScript 渲染完成——可透過無頭瀏覽器(Playwright、Puppeteer)或直接攔截網站的 API endpoint。拿到渲染後的 HTML 之後,再像平常一樣清理並送給 Gemini。或者你也可以改用 Gemini 的 vision API 做截圖爬取——只要瀏覽器看得到,Gemini 就看得到。Thunderbit 在 Cloud 和 Browser 兩種模式下,都能自動處理 JavaScript 渲染頁面。

用 Gemini 做爬取,和用 Thunderbit 這類專門工具有什麼差別?

Gemini 是擷取引擎——它負責理解內容並回傳結構化資料。它不會自己上網、處理分頁、管理驗證,也不會直接匯出到試算表。你仍然需要某個工具把頁面內容送給 Gemini,還要有工具把輸出結果變成有用的東西。像 Thunderbit 這類專門工具,則把抓取、渲染、AI 擷取、分頁、子頁面補強與匯出整合成一套,不需要自己搭管線。

延伸閱讀

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

Extract data from any page in 1 click

全球超過 25 萬用戶信賴
提供免費方案
使用 AI 提取數據
輕鬆將數據傳輸到 Google Sheets、Airtable 或 Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week