mishushakov/llm-scraper
Turn any webpage into structured data using LLMs
解決的問題
從網頁中提取結構化資訊通常需要編寫脆弱的、針對每個網站的抓取程式碼,這些程式碼在標記語言發生變化時就會失效。LLM Scraper 用一種更靈活的方法取代了這種方式:它讓 LLM 讀取頁面內容,並按照你定義的類型化 Schema 輸出準確的欄位。這使得無需硬編碼 CSS 選擇器或 XPath 表達式,即可提取新聞標題、產品詳情或搜尋結果等數據。
工作原理
你啟動一個 Playwright 瀏覽器頁面,將其指向任何 URL,並定義一個描述你所需數據的 Schema(使用 Zod 或 JSON Schema)。然後,LLM Scraper 會以六種格式之一將頁面內容提供給 LLM:預處理後的 HTML、原始 HTML、markdown、可讀文本(透過 Readability.js)、用於多模態模型的截圖,或來自你自定義函數的自定義內容。LLM 重新閱讀內容並回傳與你的 Schema 匹配的 JSON 物件。你還可以執行串流版本,在生成過程中產出部分結果,以及程式碼生成模式,生成一個獨立的 Playwright 腳本,以便在之後無需呼叫 LLM 即可提取數據。
適用對象
正在構建 Web 抓取流水線,並希望尋找比傳統解析更具韌性且由 Schema 驅動的替代方案的開發人員。對於需要將非結構化 Web 數據規範化為整潔記錄的專案,或任何已經在使用 Playwright 並希望添加 LLM 驅動的提取功能的人來說,這特別有用。因為它支援許多 LLM 提供商(OpenAI, Anthropic, Google, Groq, Ollama),因此非常適合已經使用其中一個平台的團隊。
亮點
- 使用 Zod 或 JSON Schema 進行 Schema 優先的提取,具有完整的 TypeScript 型別安全性。
- 透過 Vercel AI SDK 支援多種 LLM 系列和提供商。
- 六種向模型提供數據的格式模式——其中包括 HTML、markdown、文本和截圖。
- 用於部分結果的串流輸出。
- 程式碼生成模式,為你提供一個可重用的 Playwright 腳本,實現更快速的提取。
- 基於 Playwright 構建,因此可以在任何現代瀏覽器環境中運行。
相關
- 專案
- 專案
- 專案
- 專案
- 專案