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 ベースであるため、あらゆるモダンなブラウザ環境で動作

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト