webclaw 是以 Rust 寫成的本地優先網頁內容擷取工具,把網站轉換成乾淨的 Markdown、JSON 與結構化資料。它面向 AI agent、RAG 流程與 LLM 取用情境,提供單頁擷取、同源爬取、批次抓取、結構化資料萃取、品牌資產擷取與頁面快照比對,並可透過 CLI、REST API、MCP server 或 TypeScript / Python / Go SDK 呼叫。
webclaw 是一支命令列工具與函式庫,把任意網址的內容抽取成結構化、適合 LLM 取用的格式。語言以 Rust 為主(95.4%),強調本地優先(local-first):預設在你自己的機器上執行,不需要把目標網址或抓取結果送往第三方服務,並提供可選的 hosted API。
問題出在輸入端。LLM 與 RAG 流程需要乾淨的文字,但原始 HTML 夾雜導覽列、頁尾、廣告與腳本。webclaw 負責把這些雜訊移除,輸出 Markdown、純文字、JSON、LLM 專用格式或精簡 HTML。你可以只保留主要內容(--only-main-content),或以 CSS selector 指定 --include / --exclude 範圍。
擷取之外,webclaw 能沿同源連結爬取(--crawl,可設 --depth 與 --max-pages)、僅列出網址而不擷取(map)、並行批次抓取多個網址、萃取結構化資料與摘要、以 diff 工具比對頁面快照,以及擷取品牌資產(顏色、字型、logo)。整套工具拆成數個 Rust crate:webclaw-core、webclaw-fetch、webclaw-llm、webclaw-pdf、webclaw-mcp、webclaw-cli。
webclaw 提供四種安裝方式:Homebrew、npx、Cargo 與 Docker。在 macOS 或 Linux 上,Homebrew 是最直接的路徑。
要在 AI agent 專案內初始化,用 npx create-webclaw。要從原始碼編譯,用 Cargo 分別安裝 CLI 與 MCP server。不想安裝在本機,可直接用 Docker 映像執行。
webclaw-mcp),可直接接到支援 Model Context Protocol 的 AI agent;另提供 REST API 與 TypeScript / Python / Go SDK。本地優先設計讓抓取預設在自有機器上完成,若有需要也可改用官方 hosted API。
webclaw 的能力可分成四層:單頁擷取、站內探索、內容分析,以及對外整合。下表把功能依這四層分組,每張卡片對應一個指令或旗標。最常用的入口是 webclaw <url> --format llm:取單頁、轉成 LLM 適用格式。
| 你想做什麼 | 用哪個指令 / 旗標 |
|---|---|
| 取單一頁面餵給 LLM | webclaw <url> --format llm |
| 只要正文,不要導覽與廣告 | --only-main-content |
| 整個文件站全抓 | --crawl --depth N --max-pages M |
| 先看站內有哪些頁 | map(僅列出網址) |
| 監看頁面是否變動 | --format json 存檔後再 --diff-with |
| 接進 AI agent | webclaw-mcp(MCP server) |
webclaw 的輸出不是單一格式,而是針對不同下游用途提供五種選擇。以下整理各格式的適用情境,以及工具的本地優先設計與 crate 架構。內容皆出自官方 README 與 repo 結構。
以 --format markdown 取得。把頁面轉成乾淨 Markdown,保留標題、清單與連結結構,適合直接貼進文件或 prompt。
以 --format llm 取得。針對模型取用最佳化的輸出,壓縮樣板、保留語意,減少送進 LLM 的雜訊。
以 --format json 取得。機器可讀輸出,可存檔做後續處理,或作為 --diff-with 比對的基準快照。
以 --format text 取得最精簡的純文字,或 --format html 取得整理後的 HTML,視下游是否需要保留標記而定。
抓取預設在自有機器上完成,目標網址與結果不必經過第三方服務;若有需要,另提供官方 hosted API。
來源 · 官方 README工具拆成獨立 Rust crate:webclaw-core、webclaw-fetch、webclaw-llm、webclaw-pdf、webclaw-mcp、webclaw-cli,可單獨取用作為函式庫。
以下示範一個常見任務:先把文件站爬取並轉成 LLM 可用的文字,接著對定價頁設定變動監看,最後取出網站品牌素材。指令皆為 webclaw 的實際語法。
webclaw 把「抓取」與「清理」綁在同一步:--crawl 沿連結展開,--format llm 與 --only-main-content 把每頁壓成模型讀得懂的文字。對 RAG 流程而言,輸入品質決定檢索品質,而大部分雜訊來自 HTML 樣板。
本地優先讓這件事可重複、可稽核:抓取在自有機器執行,輸出是純檔案,可進版本控制;再用 --diff-with 對同一頁做快照比對,就能把「定價或文件是否更動」變成一個可自動化的檢查。
robots.txt 與速率限制,避免對來源造成負擔。
--depth 與 --max-pages,可能抓到遠超預期的頁數。建議先用 map 探勘範圍再決定。
--only-main-content 與選擇器屬啟發式判斷,版面特殊的頁面仍可能保留雜訊或漏掉正文,送進 LLM 前宜人工抽查。
--format、--crawl、--diff-with、--brand 等)以目前 README 為準,升級後請以 webclaw --help 的輸出為準。
webclaw 不只有 CLI。它同時是 MCP server、REST API、SDK 與一組 Rust crate,這讓它能從「手動抓單頁」一路擴展到「服務內的自動化擷取層」。
1. 接進 AI agent。用 webclaw-mcp 起一個 MCP server,讓支援 Model Context Protocol 的 agent 直接呼叫擷取能力,把網頁納入工具集。
2. 程式化整合。用 REST API 或 TypeScript / Python / Go SDK,把擷取嵌進你既有的服務,不必透過命令列。
3. 當函式庫用。只取 webclaw-core 與 webclaw-fetch crate,在 Rust 專案裡直接調用核心邏輯,跳過 CLI 層。
4. 批次與監看。把 batch 與 --diff-with 包成排程任務,定期對一組網址做快照比對,變動時通知。
5. 容器化部署。用 ghcr.io/0xmassi/webclaw 映像在 CI 或伺服器上執行,免在每台機器個別安裝。
① 0xMassi/webclaw——主 README,安裝、旗標與輸出格式的完整說明。
② examples/——實際呼叫範例。
③ crates/webclaw-mcp——MCP server 整合的程式碼。