mishushakov/llm-scraper
Turn any webpage into structured data using LLMs
解決する課題
ウェブページから構造化された情報を抽出するには、通常、マークアップの変更によって壊れてしまう、サイトごとに個別のスクレイピングコードを書く必要があります。LLM Scraper は、これをより柔軟なアプローチに置き換えます。LLM にページの内容を読み取らせ、型定義されたスキーマとして指定した通りのフィールドを出力させます。これにより、CSSセレクターやXPath式をハードコーディングすることなく、ニュースの見出し、製品詳細、検索結果などのデータを抽出することが可能になります。
仕組み
Playwright ブラウザページを起動して任意の URL を指定し、取得したいデータを記述したスキーマ(Zod または JSON Schema を使用)を定義します。LLM Scraper は、ページの内容を以下の 6 つの形式のいずれかで LLM に渡します:前処理済み HTML、生 HTML、markdown、読み取り可能なテキスト(Readability.js 経由)、マルチモーダルモデル用のスクリーンショット、または独自の関数によるカスタムコンテンツです。LLM はコンテンツを再読し、スキーマに一致する JSON オブジェクトを返します。また、生成された結果を逐次出力するストリーミング版や、後続の LLM 呼び出しなしでデータを抽出するためのスタンドアロンな Playwright スクリプトを生成するコード生成モードも利用可能です。
対象者
従来のパース処理に代わる、より弾力性のあるスキーマ駆動のアプローチを求める、ウェブスクレイピングパイプラインを構築している開発者。非構造化ウェブデータをクリーンなレコードに正規化する必要があるプロジェクトや、すでに Playwright を使用しており、LLM による抽出機能を追加したいと考えている方に特に有用です。多くの LLM プロバイダー(OpenAI, Anthropic, Google, Groq, Ollama)をサポートしているため、すでにこれらのプラットフォームのいずれかを使用しているチームにも適しています。
ハイライト
- Zod または JSON Schema を使用したスキーマ優先の抽出で、完全な TypeScript の型安全性を提供
- Vercel AI SDK を介して複数の LLM ファミリーとプロバイダーをサポート
- HTML、markdown、テキスト、スクリーンショットを含む 6 つのフォーマットモード
- 部分的な結果を返すストリーミング出力
- 短時間で抽出するための再利用可能な Playwright スクリプトを生成するコード生成モード
- Playwright ベースであるため、あらゆるモダンなブラウザ環境で動作
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト