返回

使用 Crawl4AI 與 LLM 建立網頁爬蟲:一步步實作教學

avatar
2025年11月2 分鐘 閱讀
分享給
  • 複製連結

想知道如何用 LLM 自動從網站抓到乾淨的表格資料嗎?

你有沒有想過,把亂七八糟的網頁變成整齊的表格,可以自動完成?用 LLM 配合 Crawl4AI,這事就能做得到。下面用簡單句子說明,讓你一步步上手。

為什麼要用 LLM 來做網頁資料抓取?(簡單有趣例子)

LLM 擅長理解文字。網頁上很多資訊在 HTML 裡,但不一定有表格。把網頁內容交給 LLM,它可以把重要欄位挑出來,然後輸出成結構化資料。舉例:抓 ESPN 的球員傳球數據,LLM 能找出「球員名」「出賽場次」「完成傳球」等欄位。這樣就省下很多寫解析器的時間。

這篇文章會教你什麼:從安裝到用範例驗證結果

大概步驟很簡單。先安裝工具,再設定。然後用範例網址測試。最後檢查結果。下面用簡短句子把重點列出,並示範常見設定。

  • 安裝:pip install -U crawl4ai,之後執行安裝指令來完成設定。
  • 驗證安裝:執行 crawl4ai-do 確認成功訊息。
  • 測試抓取:用範例指令抓取網頁 HTML,確認能看到內容。
  • 結構化抽取:用 pydantic 建立欄位模型,讓 LLM 回傳結構化資料。
  • 模型與提供者:可使用 OpenRouter(雲端)或 Ollama(本地)。
  • 性能優化:啟用 chunking(例如 token=1024)來分段處理長內容。
  • 驗證:由於 LLM 有隨機性,務必人工或用 LLM 當裁判核對資料。

在設定上,有幾個常見選項要注意。瀏覽器部分可把 verbose=true 和 headless=true,這樣終端會有日誌,但不會彈出視窗。抽取策略選 LLM,並把 schema 設成你的 pydantic 類別。抽取時,提供清楚說明文字與範例,能幫助模型更準確。

如果選 OpenRouter,常見設定包含 provider 設為 openrouter,model 可以選 qwen-3,並填入 base_url(如 openrouter.ai/api/v1)與 API token。若要用本地模型,改用 Ollama,把 base_url 換成 http://localhost:11434,並設定本地模型名稱。

| 提供者 | 本地/雲端 | 需不需要 API | 適合情境 | | --- | --- | --- | --- | | OpenRouter | 雲端 | 需要 | 大型公開模型,快速上手 | | Ollama | 本地 | 本地服務 | 在地測試或隱私需求 | | 其他(如 OpenAI) | 雲端 | 需要 | 穩定或多樣模型選擇 |

當處理長網頁或大量資料時,開啟 chunking 很有幫助。設定 apply_chunking=true,並把每塊 token 設為 1024,系統會把內容分段送入模型,減少記憶體壓力,也提高成功率。

最後一點很重要:LLM 的結果有時會出錯或漏情報。請務必驗證每個欄位。可以自行比對原頁面,或請另一個 LLM 當裁判再檢查一次。這樣能提高資料品質和信心。

準備好之後,你就可以開始抓資料了。現在就去使用 Crawl4AI,把想要的網站放進去,設定好模型和 schema,馬上試試看。簡單、快速,資料立刻變得好用。

Crawl4AI 有什麼優點?適合哪些人?

你想用 AI 自動抓網頁並取出乾淨的表格嗎?Crawl4AI 就是做這件事的工具。它支援多家模型提供者,能把網頁內容交給 LLM 分析,再用 Pydantic 把結果整理成結構化欄位。安裝簡單,執行也直覺,適合想把網頁資料變成可用數據的人。關鍵詞:Crawl4AILLM結構化數據chunking

核心優勢:支援多家模型提供者(OpenRouter、Ollama、OpenAI 等)

Crawl4AI 可以接不同的模型後端。像用 OpenRouter 時,要填 base URL 與 API token;若用 Ollama,可以在本機跑模型(例:localhost:11434)。選擇彈性高。

內建 schema 提取(用 Pydantic 定義結構化欄位)

在程式裡用 Pydantic 定義想要的欄位和說明。把這個 schema 給 LLM,工具會以『schema 抽取』模式回傳結構化資料。給欄位加上簡短說明,能幫助 LLM 更準確地抓值。

適合對象:資料工程師、後端開發者、資料分析師與 AI 愛好者

如果你常做資料擷取、網站分析或想把爬到的內容轉成表格,這工具很適合。使用較小或本地模型時,可開啟 chunking(分段處理)來提高穩定度。別忘了:抽取後要人工或用模型驗證資料正確性。

| 提供者 | 接入類型 | 適合場景 | 說明 | | --- | --- | --- | --- | | OpenRouter | 雲端 | 多模型選擇 | 需設定 base URL 與 API token | | Ollama | 本機/私有 | 本地部署、隱私需求 | 用 localhost:11434 作為 base URL | | OpenAI | 雲端 | 高品質通用模型 | 穩定但可能有成本考量 |

一步一步安裝 Crawl4AI 並跑出第一個範例

想不想快速把網站資料抓下來,然後讓 AI 幫你整理成表格?這篇教學會一步步帶你用 Crawl4AI 跑出第一個 LLM 支援的 網頁爬蟲,並抽取 結構化數據

先決條件:Python、VS Code 與終端機準備

先準備好電腦可以執行 Python。建議用簡單的編輯器,例如 VS Code。打開終端機(Terminal),準備輸入安裝指令。

安裝指令與設定:pip install crawl4ai、執行 setup 與驗證(crawl4ai-do)

在終端機輸入:pip install -U crawl4ai。安裝完成後,執行專案的 setup 指令,系統可能會請你輸入密碼。最後用 crawl4ai-do 檢查安裝是否成功。安裝時間約一分鐘左右,請耐心等候。

執行範例:抓取 HTML、用 LLM 抽取結構化欄位

先用範例網址抓取 HTML,確認能看到網頁內容。接著定義你要的欄位。常見做法是用 Pydantic 的資料模型來描述欄位名稱與說明,這能幫助 LLM 更精準地回傳你要的欄位。

在設定檔內選擇抽取策略(extraction strategy)為 LLM,並設定模型提供者,例如 OpenRouter。填入 base URL 與 API token。如果要用本地模型,改用 Ollama,並換成本地的 base URL(例如 http://localhost:11434)。

範例會將模型設定為 verbose 模式,方便在終端機看到日誌。抽取類型選 schema,並在 instruction 裡放入提示與範例資料,讓 LLM 知道每個欄位的意義。

注意:LLM 回傳有非決定性特性,結果需人工或再用 LLM 檢驗。若使用較小的本地模型,建議開啟 chunking,把長文件拆成小塊,像每塊 1024 token 來處理,能提高穩定度。

| 項目 | OpenRouter | Ollama | | --- | --- | --- | | 部署方式 | 雲端 API | 本地伺服器 | | 設定要點 | 填 base URL 與 token | 改成本地網址,確認埠號 | | 適合場景 | 需要大型或商用模型時 | 想用離線或本地模型時 |

  • 安裝:pip install -U crawl4ai。
  • 設定:執行 setup,驗證 crawl4ai-do。
  • 範例:替換網址抓取 HTML,確認內容。
  • LLM 抽取:用 Pydantic 定義 schema,填 instruction。
  • 模型提供者:可選 OpenRouterOllama
  • 優化:遇到長內容就開啟 chunking

現在就去使用 Crawl4AI,按上面步驟試一次。你會看到把亂糟糟的網頁變成整齊的 結構化數據,很方便做後續分析或存檔。

進一步:模型設定、schema、chunking 與驗證策略

想把網站資料抓下來,然後變成好用的表格嗎?用 Crawl4AI 搭配 LLM,可以把網頁內容轉成結構化資料。下面用簡單步驟,說明如何設定模型、寫 schema、處理 chunking,還有怎麼驗證結果。

選模型與提供者:設定 OpenRouter、Ollama 或其他 API 與 base URL

選模型時,先決定要用哪個服務。常見的有 OpenRouterOllama,或其他雲端 API。設定要填的東西有模型名稱、base URL、還有 API token。舉例:如果用 OpenRouter,base URL 會是 openrouter.ai 的 API 路徑;如果用本機模型,base URL 則會是 localhost 的埠號。記得把 token 放在安全的環境變數中,不要直接寫在程式碼裡。

如何設計 Pydantic schema 與在 prompt 中給 LLM 明確說明欄位

要讓模型回傳固定欄位,最好用 Pydantic 的 schema。每個欄位都要有簡短說明,例:player_name、games_played、pass_yards 等。把 schema 範例也放進 prompt 裡,讓 LLM 知道要回傳哪幾個欄位。提示語要清楚。短句、例子和範本會讓模型更容易照著輸出。

處理模型差異:啟用 chunking( token 大小、apply_chunking) 來降低錯誤

不同模型大小和記憶力不同。若模型較小,長網頁可能會造成錯誤。這時候可以啟用 chunking。設定像是 apply_chunking: true,和每塊的 token 數,例如 1024。系統會把長文章拆成多塊,分段送模型處理,再合併結果。這樣可以讓小模型也能穩定運作。

資料品質管控:為何要手動或用 LLM 當「裁判」來驗證非決定性輸出

LLM 的答案有時會不一樣。這叫非決定性。抓到的資料,不能只相信一次輸出。最好做兩件事:一是寫程式比對原始 HTML,二是用另一個 LLM 或同一模型當「裁判」檢查結果。若有數值或姓名不對,就標記出來再人工確認。這樣可以提升資料品質。

常見問題與排錯小技巧(verbosity、headless、日誌)

設定時常會遇到小問題。三個常用參數會很有幫助:

  1. verbosity:開啟會在終端顯示更多日誌,方便除錯。
  2. headless:設為 true 可以不顯示瀏覽器視窗。
  3. 日誌(logs):把錯誤訊息記下來,能快速找到哪一步失敗。

| 項目 | OpenRouter | Ollama | 本機模型 (localhost) | | --- | --- | --- | --- | | base URL 範例 | openrouter.ai/... | provider specific | http://localhost:11434 | | 適合場景 | 雲端 API、多樣模型 | 本地測試、私有模型 | 不需網路、低延遲 | | 需要 API token | 是 | 視情況而定 | 通常否(本機) | | 使用風險 | 外送資料到雲端 | 視供應者 | 本地資料較安全 |

立即行動(CTA):如何下載/安裝 Crawl4AI 並立刻運行你的第一個 LLM 爬蟲

想馬上試試看?跟著下面幾步做就能開始。

  • 打開終端機。輸入:pip install -U crawl4ai 來安裝套件。
  • 執行安裝後的設定指令(若套件提供 setup 指令),依提示完成安裝。
  • 用 crawl4ai-do 或範例程式碼做測試。把要抓的網址放進 config。先用小範例確認輸出正確。
  • 在 run config 裡選擇 LLM 的策略,填好模型提供者、base URL 與 token。
  • 如果資料很多,啟用 chunking,設定 token 大小,例如 1024。
  • 最後,檢查輸出並人工或用 LLM 當裁判驗證資料正確性。

用簡單的設定,就能把網頁資訊變成結構化資料。記得善用 Crawl4AI 的日誌與 chunking 功能,並用明確的 Pydantic schema 幫助 LLM 回傳正確欄位。現在就試試安裝並跑一個小範例,看看效果如何。

相關文章