上週,我們銷售團隊的一位同事找我幫忙,想從大約 200 個商業名錄頁面抓出聯絡資訊。他的做法?一頁一頁複製貼到試算表裡。我建議他改用 ChatGPT 來生成 Python 爬蟲。二十分鐘後,他拿到了一段腳本。再過三十分鐘,他就傳訊息給我說:「前五頁都能跑,接著就……停了。」
這種情況其實很常見。ChatGPT 確實很會寫抓取程式碼——但前提是它真的派得上用場。網路上大多數教學都還停留在「看,這個玩具網站可以跑」的階段,一旦你碰到有 JavaScript、反爬機制或分頁的正式網站,馬上就會卡住。這篇指南會帶你完整看懂 ChatGPT 網頁爬蟲在實戰裡到底長什麼樣子:從完整流程、五個可以重複使用的提示詞範本(不只一個示例),到實際會在哪些地方壞掉,以及壞掉時該怎麼處理——也包括像 這類完全不用寫程式的替代方案。
什麼是 ChatGPT 網頁爬蟲?
「ChatGPT 網頁爬蟲」指的是利用 ChatGPT 幫你從網站擷取資料。但有一個關鍵差別很多人會忽略:ChatGPT 本身不會直接幫你爬網站。它不能打開 URL、抓 HTML,或是點翻頁。它能做的是:生成執行這些動作的程式碼(通常是 Python),或者解析你貼進對話框的原始 HTML,然後把資料整理成結構化格式。
主要有兩種做法:
- 把 ChatGPT 當成程式碼生成器: 你描述頁面和想要的資料,ChatGPT 會寫出 Python 腳本(通常使用 BeautifulSoup、Selenium 或 Playwright),再由你在本機執行。
- 把 ChatGPT 當成資料解析器: 你把原始 HTML 複製貼到對話裡(或透過 Code Interpreter 上傳),ChatGPT 會把你要的欄位整理成 JSON 或 CSV。
不管哪一種方式,真正負責抓取和執行的都還是你。ChatGPT 是大腦,不是雙手。即使是新推出的 ChatGPT Atlas 瀏覽器(2025 年 10 月推出),雖然可以用對話方式瀏覽網頁,但回傳的還是答案,不是一份有 500 筆商品資料的結構化 CSV。它是瀏覽助手,不是資料擷取管線。
為什麼要用 ChatGPT 做網頁爬蟲?適合誰?
ChatGPT 真的大幅降低了網頁爬蟲的門檻。根據 ,目前有 的開發者已經在工作流程中使用或計畫使用 AI 工具,而 ChatGPT 以 82% 的占比領先。不過,搜尋「ChatGPT 網頁爬蟲」的人不只有工程師。也有 SDR 在整理潛在客戶名單、電商經理在追蹤競品價格、房地產分析師在抓取房源資料,以及行銷團隊在彙整內容。
以下快速看一下常見使用情境和受益對象:
| 使用情境 | 受益對象 | 擷取內容 |
|---|---|---|
| 銷售名單擷取 | SDR、銷售營運 | 名稱、Email、電話號碼,來源為名錄網站 |
| 競品價格監控 | 電商、定價團隊 | 商品名稱、價格、庫存、SKU |
| 市場研究 | 分析師、創業者 | 公司資訊、評論、評分、功能清單 |
| 房地產資料蒐集 | 經紀人、投資人 | 房價、地址、臥室/衛浴數、仲介資訊 |
| 內容彙整 | 行銷、SEO 團隊 | 文章標題、URL、發布日期、作者 |
人工手動從 100 個頁面複製資料,可能得花 3 到 5 小時。ChatGPT 生成的腳本如果順利跑起來,幾分鐘就能完成同樣的事。而這個「如果」就是這篇文章的重點。
Gartner 預測,到 2026 年,非正式 IT 部門的開發者將占低程式碼工具使用者的 。越來越多人搜尋「ChatGPT 網頁爬蟲」,其實就是非工程背景的使用者,希望不用請工程師也能拿到資料。對他們來說,ChatGPT 往往是第一站;而當腳本一直跑不動時,Thunderbit 這類工具就會變成下一個選擇。
ChatGPT 網頁爬蟲怎麼運作:一步一步教學
下面我會用一個商業名錄列表頁,完整示範端到端流程——不是玩具網站。
- 難度: 中等(你需要有基本 Python 執行能力)
- 所需時間: 第一次抓取約 15–30 分鐘
- 你需要準備: Chrome 瀏覽器、Python 環境(Python 3.10 以上)、ChatGPT(免費版即可)、以及目標 URL
步驟 1:檢查網站並找出你要的資料
先在 Chrome 打開你想抓取的頁面。對著你要的資料(例如商家名稱)按右鍵,選擇 檢查。這會打開 Chrome 開發者工具,並直接高亮對應的 HTML 元素。
找出 CSS selector,例如 h2.business-name、span.phone 或 a.website-link。你的 selector 越精準,ChatGPT 產出的結果通常越好。把一小段有代表性的 HTML(例如一個資料「卡片」或「列」)複製起來,準備貼到提示詞裡。
現在你應該已經有一份欄位清單(例如 business_name、phone、website_url),以及它們對應的 CSS selector。
步驟 2:撰寫詳細的 ChatGPT 提示詞
很多教學會失敗在這一步——只給你很模糊的提示詞,然後祈禱它成功。好的抓取提示詞要包含六個部分:
- 語言與函式庫:「請用 Python 3.11 與 BeautifulSoup 4 撰寫。」
- 目標 URL: 要抓取的精確頁面。
- CSS selector: 每個欄位對應的 selector。
- 輸出格式: CSV、JSON,或兩者都要。
- 特殊指示: 編碼、錯誤處理、延遲。
- HTML 片段: 貼上 20–40 行實際頁面 HTML,讓 ChatGPT 看結構。
以下是一個範例提示詞(含註解):
1你是一位資深 Python 工程師。請使用 Python 3.11 與 BeautifulSoup 4 撰寫一個網頁爬蟲。
2目標 URL: https://example.com/businesses
3目標:擷取頁面上的每一個商家卡片,並以每個商家一列的形式輸出。
4所需欄位(括號內為 CSS selectors):
5- business_name (h2.biz-name)
6- phone (span.phone-number)
7- website_url (a.biz-link, href)
8- rating (div.stars[data-rating])
9輸出:以 UTF-8 編碼存成 businesses.csv,並包含表頭。
10需求:
11- 使用 requests,並加上看起來正常的 User-Agent 標頭
12- 妥善處理缺漏欄位(填 None,不要當掉)
13- 最後輸出擷取到的商家數量
14- 如果有迴圈抓取,請在每次請求間加入 1 秒延遲
15以下是頁面中一個商家卡片的代表性 HTML 片段:
16<在此貼上 20–40 行實際 HTML>
小提醒:加入 HTML 片段,是提升準確率最有效的一招。因為 ChatGPT 沒辦法直接打開網址,所以這段 HTML 就是它唯一的真實依據。
步驟 3:檢查並測試 ChatGPT 生成的程式碼
不要直接把 ChatGPT 的程式碼拿去跑。先閱讀一遍,注意以下幾點:
- 幻覺 selector: ChatGPT 有時會憑空捏造頁面根本不存在的 CSS class。
- 缺少套件: 確認
pip install requests beautifulsoup4(或playwright等)是否已包含。 - 硬編碼值: 檢查 URL、欄位名稱和檔案路徑是否正確。
先建立 Python 虛擬環境,安裝相依套件,然後只跑少量樣本(1 到 2 頁)測試。檢查輸出的 CSV——欄位是否都有值?是不是你預期有資料的地方卻出現空白?
步驟 4:用後續提示詞逐步修正
ChatGPT 最強的地方之一就是可以反覆迭代。如果第一版腳本只能抓第 1 頁,可以這樣問:
「這個腳本只會抓第一頁。你可以幫我加上分頁功能,把所有頁面都抓下來嗎?網站的頁碼格式是 ?page=1、?page=2 這樣。當某頁回傳 0 筆結果,或超過 50 頁時停止。」
如果欄位缺漏,就請 ChatGPT 加上針對 Email 或電話的 regex 備援。若網站是高度依賴 JS,則請它改寫成 Playwright 版本。每一次後續提示詞,都是在前一版程式碼上繼續調整——把它想成是在跟一位速度很快、但有時太過自信的夥伴一起 pair programming。
5 組可直接複製貼上的 ChatGPT 網頁爬蟲提示詞範本
我還沒看過其他指南把這部分整理得這麼完整。以下是我根據不同情境撰寫、測試並優化出的五個提示詞範本。你只要複製、替換成你的 URL 和 HTML 片段,ChatGPT 通常就能一次產出可用程式碼,或至少非常接近可用。
範本 1:列表頁爬蟲(商品目錄、名錄網站)
適用時機: 你正在一個有很多項目的頁面上(商品、商家、職缺),希望每個項目輸出一列。
1你是一位資深 Python 工程師。請使用 Python 3.11 與 BeautifulSoup 4 撰寫一個網頁爬蟲。
2目標 URL: [你的 URL]
3目標:擷取頁面上的每一個項目卡片,並以每個項目一列的形式輸出。
4所需欄位(括號內為 CSS selectors,請根據 Inspect 結果填寫):
5- [欄位_1] ([selector_1])
6- [欄位_2] ([selector_2])
7- [欄位_3] ([selector_3])
8- [欄位_4] ([selector_4,若需要可加上屬性])
9輸出:以 UTF-8 編碼存成 items.csv,並包含表頭。
10需求:
11- 使用 requests,並加上看起來正常的 User-Agent 標頭
12- 妥善處理缺漏欄位(填 None,不要當掉)
13- 最後輸出擷取到的項目數量
14- 如果有迴圈抓取,請在每次請求間加入 1 秒延遲
15以下是頁面中一個項目卡片的代表性 HTML 片段:
16[在此貼上 20–40 行實際 HTML]
預期輸出: 一個 CSV 檔,每個項目一列,欄位名稱對應你的欄位設定。
範本 2:詳情頁/子頁爬蟲(單一商品或個人檔案頁)
適用時機: 你有一個資訊很多的單頁(商品頁、個人檔案、房源頁),想把所有內容整理成一筆結構化資料。
1請寫一個 Python 函式 `scrape_detail(url)`,輸入詳情頁 URL,回傳一個 dict,鍵如下:
2- [欄位_1]
3- [欄位_2]
4- [欄位_3]
5- [欄位_4]
6- [欄位_5]
7請使用 BeautifulSoup。若有欄位缺漏,請妥善處理(回傳 None)。
8請為 email 和 phone 加上 regex 備援,因為不是每個頁面都會用一致的 HTML 標籤包住它們。
9回傳這個 dict,並同時將它附加為 details.csv 的一列(第一次呼叫時建立檔案與表頭)。
10以下是某個真實詳情頁的 HTML 片段參考:
11[在此貼上 40–60 行詳情頁 HTML]
預期輸出: 每個頁面一個 dict,並且有一個持續累積的 CSV 檔,每頁一列。
範本 3:動態/JS 渲染頁面爬蟲(Playwright)
適用時機: 頁面內容是透過 JavaScript 載入的(React、Angular 等)——你在 HTML 原始碼裡只看到空的 <div id="root">。
1請使用 Playwright(同步 API)撰寫一個 Python 網頁爬蟲,適用於 JavaScript 渲染頁面。
2目標 URL: [你的 URL]
3目標:擷取頁面完全載入後出現的所有結果卡片。
4需求:
5- 使用 `page.wait_for_selector('[你的卡片 selector]', timeout=15000)` 等待內容出現
6- 向下捲動頁面到底部兩次,每次捲動後暫停 1 秒,以觸發懶載入結果
7- 對每張卡片擷取:[欄位_1]、[欄位_2]、[欄位_3]、[欄位_4]
8- 以 UTF-8 存成 results.json,內容為 dict 陣列
9- 先用 headless=False 執行(方便我觀察),結束前再額外暫停 2 秒才關閉
10不要使用 requests 或 BeautifulSoup——只用 Playwright。
預期輸出: 一個 JSON 檔,每個結果卡片一筆物件,且所有欄位都有值。
範本 4:分頁處理器(多頁抓取)
適用時機: 你已經有可運作的單頁爬蟲,現在需要把所有頁面都抓下來。
1請把下面這段已經能運作的 BeautifulSoup 爬蟲包裝成分頁迴圈,讓它抓取所有頁面,不只第 1 頁。
2網站的分頁方式是 URL 參數:?page=1、?page=2 等。
3停止條件:當目前頁面回傳 0 筆項目,或回應狀態不是 200,或頁數達到 100(安全上限)時停止。
4請加入:
5- 每次請求間 1.5 秒的禮貌延遲
6- 每次請求外層加上 try/except,記錄錯誤後繼續
7- 每 5 頁輸出一次進度,例如:「Page 15 → 目前共 300 筆」
8- 最後存成 items_all.csv
9現有爬蟲:
10[在此貼上你目前的單頁爬蟲]
預期輸出: 一個包含所有頁面資料的 CSV,並在主控台顯示進度。
範本 5:資料清理與結構化(「直接貼 HTML」作法)
適用時機: 你已經有原始 HTML(從 curl、瀏覽器、或檔案取得),只想讓 ChatGPT 直接幫你解析成乾淨的結構化資料——不需要寫程式。
1我會貼上一個商品詳情頁的原始 HTML。你不需要寫程式——只要根據以下 schema 回傳擷取出的資料,格式為 JSON 物件:
2{
3 "name": string,
4 "brand": string,
5 "price": number,
6 "currency": string (ISO 4217),
7 "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
8 "rating": number (0-5) or null,
9 "review_count": integer or null,
10 "description": string (最多 500 字元),
11 "key_specs": [{"name": string, "value": string}]
12}
13任何你真的找不到的欄位請填 null,**不要**自行猜測。
14只回傳 JSON 物件本體,不要說明文字,不要 Markdown 區塊。
15HTML:
16[在此貼上完整頁面的 HTML]
預期輸出: 一個 JSON 物件,可以直接放進試算表或資料庫。
ChatGPT 網頁爬蟲在哪些情況會失敗?(誠實的限制)
大多數教學都會直接跳過這一段。我花了夠多時間除錯 ChatGPT 生成的爬蟲,已經很清楚它們最常在哪裡出問題——而 也證實,只有 的開發者會「非常信任」AI 的輸出。原因如下。
JavaScript 很重、動態載入的網站
超過 的網站都使用 JavaScript 來處理前端功能。單是 React 就已經跑在所有網站的 7.2% 上,而且一年內成長了約 。當你叫 ChatGPT「抓這個頁面」時,它預設通常會生成 requests + BeautifulSoup 的腳本。這種腳本只會抓原始 HTML——但在 React 或 Angular 網站上,原始 HTML 往往只剩一個空的 <div id="root">。真正的資料是在 JavaScript 執行後才載入,而 requests 根本不會執行 JS。
如果你特別要求,ChatGPT 可以 生成 Selenium 或 Playwright 程式碼,但這些腳本會更慢(Playwright 平均每次載入 ,而靜態 requests 通常不到一秒),而且常常需要反覆調整等待條件、捲動觸發與元素 selector——這些地方 ChatGPT 很容易猜錯。
反機器人保護與 CAPTCHA
Cloudflare 大約保護了 ,而像 DataDome 這類服務則聲稱有 。老實說,一個只用了 Python user-agent 的 requests.get(),根本就是教科書等級的機器人指紋。ChatGPT 生成的腳本不會自動輪換代理、不會偽裝 TLS 指紋、不會處理 cookies,也不會解 CAPTCHA。只要是有基本防護的商業網站,第一個請求通常就會被擋下來。
分頁與大規模抓取
ChatGPT 預設的分頁迴圈通常是 ?page=N 或點 .next 按鈕。但真實網站可能使用游標式分頁、靠 IntersectionObserver 的無限捲動,或 GraphQL 呼叫。除非你把實際的 network call 給它看,不然 ChatGPT 很難寫出正確程式;即便如此,迴圈通常還是很脆弱。 和 都指出,分頁是他們範例爬蟲最常需要第二次、第三次提示詞修正的地方。
持續性與排程抓取
ChatGPT 只會給你一次性的腳本。它沒有排程器,沒有變更偵測,也沒有警示功能。如果你想要「每天早上檢查競品價格」,你還得學 cron、Airflow 或 Lambda——而這些都不是 ChatGPT 初次回覆會幫你搞定的。對需要定期資料更新的商業使用者來說,這就是死路一條。
速度與成本問題
對於 JS 很重的網站,使用 Selenium 或 Playwright 在理想情況下,每頁通常要 3–10 秒;如果還要重試和等待反爬機制,則可能高達每頁 40–60 秒,這也是論壇和教學中 。
如果你用 ChatGPT API 來解析 HTML(也就是大規模使用「直接貼 HTML」的方法),token 成本會很快累積。以目前 GPT-4o 的價格來看(約每百萬 input tokens 2.50 美元、每百萬 output tokens 10 美元),解析 1,000 個產品頁光 token 就大約要 95 到 105 美元。若改用 GPT-4o mini,同樣規模大約只要 6.50 美元。再加上代理成本(每 GB 3–10 美元)、本機爬蟲維護和工程師時間,「直接用 ChatGPT 就好」這種做法很快就會變得不便宜。
| 規模 | GPT-4o Token 成本(估算) | GPT-4o Mini Token 成本(估算) |
|---|---|---|
| 100 頁 | 約 $9.55 | 約 $0.65 |
| 1,000 頁 | 約 $95.50 | 約 $6.50 |
| 10,000 頁 | 約 $955 | 約 $65 |
以上估算假設每頁約 50K input tokens 與 2K output tokens。實際成本會因頁面大小與輸出複雜度而異。
ChatGPT 網頁爬蟲 vs. 無程式 AI 爬蟲 vs. 自訂程式碼:決策框架
不是每個抓取任務都需要同一種工具。這是我在 Thunderbit 經手真實專案、比較三種方法後整理出的決策框架。
| 情境 | ChatGPT + Python | 無程式 AI 爬蟲(例如 Thunderbit) | 自訂程式碼 + 代理 |
|---|---|---|---|
| 簡單靜態頁面 | ✅ 很適合 — 產生很快 | ✅ 可以,但可能大材小用 | ⚠️ 過度設計 |
| JS 渲染/動態內容 | ⚠️ 需要 Selenium/Playwright — 程式常壞 | ✅ 透過瀏覽器/雲端爬取處理 | ✅ 完全掌控 |
| 反機器人/CAPTCHA 網站 | ❌ ChatGPT 無法解 CAPTCHA | ✅ 雲端爬取基礎架構可處理許多情況 | ✅ 搭配代理輪換可做到 |
| 分頁(100+ 頁) | ⚠️ 迴圈脆弱,需要除錯 | ✅ 內建分頁支援 | ✅ 透過工程實作更穩定 |
| 非開發者使用者 | ❌ 需要 Python 知識 | ✅ 兩步完成,免寫程式 | ❌ 需要程式能力 |
| 持續/排程抓取 | ❌ 需手動重跑 | ✅ 有排程爬蟲功能 | ✅ 可搭配 cron/工作流編排 |
| 匯出到 Sheets/Airtable/Notion | ⚠️ 需要額外程式 | ✅ 原生一鍵匯出 | ⚠️ 需要額外整合程式 |
簡單說:ChatGPT 適合快速的一次性腳本和學習用途。如果是正式上線、週期性或非工程師使用,像 Thunderbit 這樣的無程式工具會更快、更穩,也幾乎不用維護。至於企業級的大型工程專案,則還是以自訂程式碼加代理架構最能保有完整控制權。
無程式替代方案:Thunderbit 如何在不寫程式的情況下完成網頁爬蟲
對不會寫程式的讀者,或是已經受夠半夜除錯 ChatGPT 腳本的人來說,其實還有另一條路。ChatGPT 是在產生程式碼,而 則是直接把這一步省掉。
我在 Thunderbit 團隊工作,所以先講清楚這一點。不過我也真心認為,對大多數商業使用者來說,這是最快的路。下面是實際流程。
AI Suggest Fields:自動辨識任何頁面的資料結構
打開任一網頁,點擊 ,按下「AI Suggest Fields」。Thunderbit 的 AI 會讀取已渲染的頁面——包括 JS 載入的內容——並自動建議欄位名稱與資料類型。不需要 Inspect、不需要 CSS selector、不需要提示詞工程。接著直接按「Scrape」。
把這個流程和 ChatGPT 方法比一下:打開 DevTools、找 selector、寫提示詞、審查程式碼、安裝套件、執行腳本、檢查輸出、反覆調整。Thunderbit 直接把這整串流程縮成兩個點擊。
子頁抓取:自動補齊列表資料
抓完列表頁之後,直接點「Scrape Subpages」。Thunderbit 會逐筆進入每個項目的詳情頁,並把 email、電話或簡介等額外欄位補進你現有的表格。若用 ChatGPT,你得另外寫一支腳本、再做迴圈、每個子頁都要處理錯誤,最後還得把資料合併。Thunderbit 一次就能完成。
匯出到任何地方:Google Sheets、Airtable、Notion、Excel
Thunderbit 提供免費的一鍵匯出到 Google Sheets、Airtable、Notion 和 Excel,不只是 CSV。ChatGPT 生成的腳本通常只能輸出到本機 CSV 或 JSON。若要把資料推送到 Sheets 或 Airtable,還得另外寫整合套件與驗證程式。
雲端爬取 vs. 瀏覽器爬取
Thunderbit 提供兩種模式。雲端爬取在 Thunderbit 伺服器上執行,每批可處理約 50 個頁面,對公開網站速度很快。瀏覽器爬取則會使用你已登入的工作階段,適合有登入限制或需要驗證的頁面。若用 ChatGPT,你得自己在程式裡處理代理、cookies 和 session——每一項都是另一個除錯地獄。
在底層,Thunderbit 會透過多個 AI 模型(包含 ChatGPT、Gemini、Claude 等)來視覺化讀取頁面並判斷要擷取哪些資料。換句話說,Thunderbit 其實已經在用 ChatGPT——再加上另外三個前沿模型——同時還替你處理抓取、渲染、反爬、分頁和匯出。
真實使用情境:銷售、電商與房地產
大多數 ChatGPT 爬蟲教學都拿「Books to Scrape」或其他玩具網站舉例。下面才是實際商業抓取的樣子——同時比較 ChatGPT 做法和 Thunderbit 的捷徑。
從商業名錄擷取銷售潛在客戶
情境: 你需要從商業名錄中抓取名稱、email 和電話,用於外撥銷售。
ChatGPT 做法: 用範本 1(列表頁)抓名錄,再用範本 2(詳情頁)逐一拜訪每個個人檔案抓聯絡資訊。你還需要 email 和電話的 regex 備援、禮貌延遲,以及去重流程。整體設定與除錯時間大約 30–60 分鐘。
Thunderbit 做法: 打開名錄,點「AI Suggest Fields」抓列表,再點「Scrape Subpages」從每個個人檔案拉出聯絡資訊。直接匯出到可供 CRM 使用的試算表。總耗時:約 3 分鐘。Thunderbit 內建的 會自動處理解析。
電商競品價格監控
情境: 你想每週追蹤競品商品的價格、庫存與 SKU。
ChatGPT 做法: 用範本 1 生成爬蟲,再用範本 4 加上分頁,之後每週手動執行一次。若競品改版,selector 就會失效,你得重新來過。
Thunderbit 做法: 一次設定好爬蟲,使用 Thunderbit 的排程雲端爬取每天或每週執行,並匯出到 Google Sheets。AI 每次都會重新讀取頁面結構,所以版面變動不會造成中斷。若想了解這個流程,可參考我們的 。
房地產房源資料蒐集
情境: 你需要從房源網站抓取房價、地址、臥室/衛浴數與仲介資訊。
ChatGPT 做法: 大多數房地產網站(像 Zillow 風格)都是 React SPA,而且反爬非常強。一個 requests + BeautifulSoup 腳本通常只會拿到空白頁面。即使用 Playwright,也可能在幾分鐘內就被限流。
Thunderbit 做法: 雲端爬取搭配 AI 欄位偵測,可以處理 JS 渲染並自動適應版面變化。房地產平台常常改版——Thunderbit 的 AI 每次都會重新讀頁,所以你不需要手動更新 selector。想看完整流程,請參考我們的 。
不只一次性抓取:ChatGPT API 管線 vs. Thunderbit Extract API
如果你要把爬蟲整合進產品或資料管線,問題就變成:要用 ChatGPT API 解析 HTML,還是用專為抓取打造的 API?
用 ChatGPT API 解析 HTML
做法是:先用本地爬蟲(requests、Playwright)抓 HTML,再把它送到 OpenAI API 轉成結構化 JSON。這就是大規模版的「直接貼 HTML」方式。
這方法確實可行。但成本和維護也是真實存在的。以 GPT-4o 的價格來看,1,000 頁大約要 95 美元 token 成本。你還得自己處理爬蟲、代理、提示詞工程,以及輸出 schema。當網站改版時,提示詞會失效,你也得重新調整。
Thunderbit Extract API:專為結構化網頁資料打造
Thunderbit 的 提供了不同的模式。你定義 JSON Schema,POST 一個 URL,就能拿回結構化資料。JS 渲染和反爬處理都已內建。批次處理支援每次最多 100 個 URL。
| 功能 | ChatGPT API + 自訂程式碼 | Thunderbit Extract API |
|---|---|---|
| 結構化輸出 | 需在提示詞中手動定義 schema | 以 JSON Schema 定義 |
| JS 渲染 | 需自行處理(Playwright 等) | 內建(多種渲染模式) |
| 反機器人/CAPTCHA | 需自行處理(代理等) | 自動處理 |
| 批次處理 | 需自行撰寫迴圈 | 批次端點(最多 100 URLs) |
| 維護成本 | 提示詞會壞,程式會老化 | 由 AI 引擎代管 |
對想把結構化網頁資料當服務使用、又不想自己維護抓取管線的團隊來說,Thunderbit 的 API 是更短的上線路徑。請查看 以了解每次擷取所需的點數成本。
讓 ChatGPT 網頁爬蟲效果更好的小技巧
下面是我踩坑後學到的幾件事。
提示詞要夠具體。 一定要包含:程式語言、函式庫、目標 URL、CSS selector、輸出格式,以及邊界情況說明。模糊的提示詞只會產生模糊的程式碼。
要貼 HTML 片段,不要只貼 URL。 ChatGPT 不能直接打開網址。HTML 片段是它唯一能判斷頁面結構的依據。就算只貼 20–40 行單一卡片 HTML,也能大幅提升準確率。
請 ChatGPT 幫你做 lint 和優化。 程式碼生成後,你可以再問:「請檢查這段程式碼是否有錯誤,補上錯誤處理,並針對效能做優化。」第二次檢查時,它常常能抓出自己前一次的錯誤。
一定先用小樣本測試。 先跑 1–2 頁,再決定要不要擴大。先在第 1 頁抓到壞掉的 selector,總比跑到第 500 次失敗才發現好得多。
反覆修正,不要重寫。 如果第一版已經有 80% 正確,把輸出貼回去,請 ChatGPT 修剩下的 20%。ChatGPT 最強的地方,就是這種迭代式對話。
使用 ChatGPT 網頁爬蟲時的倫理與法律考量
法律面也很重要,所以這裡先講簡短版。
根據目前美國的判例,抓取公開可見的資料並不構成聯邦電腦犯罪。 案已建立這一點,而 (2024 年 1 月)也再次強化了這個觀點——法官認定,抓取 Facebook 與 Instagram 上公開、未登入的資料,不違反 Meta 的服務條款,因為沒有帳號的訪客並不是受該條款約束的「使用者」。
不過,抓取需要登入或受門禁保護的內容,或是在同意網站條款後仍違反其服務條款,還是可能帶來法律風險。而且當你抓的是個人資料(email、電話)時,不論資料來源在哪裡,EU 與加州的資料保護法(GDPR、CCPA)都可能適用。
在抓取前,務必檢查 robots.txt 和服務條款。尊重速率限制。妥善處理個資。而且最好使用內建合規功能的工具——例如 Thunderbit 預設就會尊重 robots.txt,並提供更負責任的資料處理方式。若想深入了解,請參考我們的 。
什麼時候該用 ChatGPT 做網頁爬蟲,什麼時候該換別的工具?
ChatGPT 的確是很強大的網頁爬蟲工具——它能快速生成原型,也能幫你理解爬蟲底層怎麼運作。若只是簡單靜態頁面上的一次性腳本,它很難被超越。
但如果你要的是正式上線、持續運作、或大規模抓取——尤其你不是開發者——那麼像 Thunderbit 這樣的專用工具會更快、更穩,幾乎不需要維護。至於企業級工程專案,自訂程式碼加代理基礎設施,還是最能保有完整控制權的做法。
我的決策速查表:
- 快速一次性任務、學習、原型開發: ChatGPT + Python
- 商業使用者、無程式、定期抓取:
- 開發者管線、結構化 API 存取:
- 企業級規模、完整控制: 自訂程式碼 + 代理 + 工作流編排
如果你想試試無程式路線,Thunderbit 有免費方案,讓你先用小規模實驗,直接看看成果。若你想看工具實際怎麼運作,我們的 也有不同應用情境的教學。
常見問題
ChatGPT 真的能自己抓網站嗎?
不能。ChatGPT 只能幫你生成抓取程式碼,或解析你提供的 HTML,但它不會自己打開 URL、抓頁面或執行腳本。即使是 ChatGPT Atlas(2025 年 10 月推出的內建瀏覽器),本質上也只是對話式瀏覽助手——它可以摘要頁面,但不會直接交給你一份 500 筆資料的結構化 CSV。
ChatGPT 網頁爬蟲是免費的嗎?
ChatGPT 免費版可以免費生成抓取程式碼。但真正執行程式仍需要 Python 與相關套件(這些通常是免費的);如果你用 OpenAI API 大規模解析 HTML,則會產生 token 成本——使用 GPT-4o mini,大約每 1,000 頁 6.50 美元;GPT-4o 則約 95 美元。代理與基礎設施費用則需另外計算。
ChatGPT 生成的網頁爬蟲,Python 最推薦用哪個函式庫?
如果是靜態 HTML 頁面,requests 搭配 BeautifulSoup 最簡單也最快。若是 JavaScript 渲染頁面,Playwright 是比較現代的選擇——它比 Selenium 更快(平均每次載入約 2.9 秒,Selenium 約 4.8 秒),而且 API 更乾淨。Selenium 主要還是適合舊專案。
我可以不用寫程式,直接用 ChatGPT 抓資料嗎?
不行,不能直接做到。ChatGPT 會產生程式碼,而你仍然需要執行。如果你想要真正免寫程式的方案,像 這類工具可以讓你兩步完成抓取——不用 Python、不用終端機,也不用除錯。你可以得到 AI 建議欄位、一鍵匯出到 Google Sheets 或 Airtable,以及對 JS 渲染與反爬機制的內建處理。
用 ChatGPT 生成的程式碼抓網站合法嗎?
抓取公開、未登入的資料,在目前美國判例下通常是合法的(hiQ v. LinkedIn、Meta v. Bright Data)。但抓取受門禁保護的內容、違反網站服務條款,或不當處理個資(email、電話),仍可能在合約法或 GDPR、CCPA 等隱私法規下產生法律風險。開始抓取前,請務必先確認 robots.txt 與網站服務條款。
延伸閱讀