Web サイト上のデータを、コードで扱える JSON として手に入れたい。料金表、製品仕様、ディレクトリ、募集中の職種一覧などです。目的を達成できる最も軽いツールを選びましょう。プラットフォームがカタログでカバーされていればカタログのツールを、データが公開ページにあればページの読み込みやクロールを、データを表示するために検索、絞り込み、クリック、ログインが必要なら output_schema を指定したブラウザエージェントによる AI スクレイピングを使います。
AI エージェントに任せる
このプロンプトを Claude Code、Cursor、Codex などのコーディングエージェントに貼り付けてください。ドキュメントの場所と API キーの使い方をエージェントに伝えます。
Extract structured data from websites for me with Lovely Router: read pages as Markdown, crawl whole sites, take screenshots, or let the browser agent click through pages and fill a JSON schema.
- Docs (read first): https://lovelyrouter.com/docs/tools/run.md and https://lovelyrouter.com/docs/browser-agent/structured-output.md
- Simple pages (read a page as Markdown, crawl a site, screenshots, contact details): data tools. Plan with POST https://lovelyrouter.com/v1/tools/suggest and `{"task": "..."}` (free): it returns the tools to run, example inputs, estimated costs and ready-made run requests. Run with POST https://lovelyrouter.com/v1/tools/<id>/run; a 202 means poll the `poll` path.
- Pages that need clicks, logins or forms: POST https://lovelyrouter.com/v1/browser/runs with `{"goal": "...", "start_url": "...", "output_schema": {...}}` and read `data` when the run ends (docs: https://lovelyrouter.com/docs/api/browser.md).
- Prefer the cheapest tool that works: page reading and crawls cost less than browser steps.
- If you support MCP, you can instead connect the server https://lovelyrouter.com/mcp (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the site or URLs and the fields you need, as a JSON schema if you have one>適切なツールを選ぶ
| 状況 | 使うもの | 得られるもの |
|---|---|---|
| Google Maps、Amazon、LinkedIn など、カタログでカバーされているプラットフォーム | そのプラットフォームのツール(例:Google Maps の場所検索) | プラットフォーム固有のフィールド。結果単位の料金 |
| URL がわかっている 1 ページ | Web ページの読み込み | タイトルと本文を整形済みの Markdown で |
| 1 つのサイトの多数のページ | Web サイトのクロール | 各ページを LLM でそのまま使える Markdown で |
| メールアドレス、電話番号、SNS リンク | Web サイトの連絡先 | Web サイトごとに統合した連絡先。最大 5 ページをクロール |
| ページの見た目 | Web ページのスクリーンショット | ページ全体の PNG、JPEG、WebP、PDF へのリンク |
| 検索ボックス、フィルター、「もっと見る」ボタン、ログインの先にあるデータ | output_schema を指定したブラウザエージェント | スキーマどおりの検証済み JSON |
MCP サーバーもエージェントに同じ方針を伝えます。調べものやページの読み込みには web_search と web_fetch を使い、ブラウザエージェントは操作が必要なページや、どのツールもカバーしていないサイトのために取っておく、というものです。
仕組み
まずカタログを確認する
POST /v1/tools/suggestに作業内容を説明するか、POST /v1/tools/discoverで検索します。どちらも無料で、ツール、入力例、費用が返ります。最適なツールを見つけるを参照してください。公開ページを読み込む・クロールする
1 つの URL には
web-fetchを、セクション全体にはwebsite-crawlを実行し、得られた Markdown を自前のパーサーか、同じキーで使えるモデルで JSON に変換します。操作が必要ならスキーマを指定して抽出する
ゴール、開始 URL、
output_schemaを指定してブラウザエージェントの実行を開始します。エージェントがページを操作し、スキーマに合った JSON をdataに入れて返します。
スキーマどおりの JSON を受け取る
次の実行は、書店サイトの Travel カテゴリを開き、そのページのすべての本を JSON で返します。
curl https://lovelyrouter.com/v1/browser/runs \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"goal": "Open the Travel category and list every book on the first page with its title, price, star rating, stock status and link.",
"start_url": "https://books.toscrape.com/",
"output_schema": {
"books": [{"title": "string", "price": "price as shown, with currency", "rating": "star rating as shown", "in_stock": "boolean", "url": "string"}]
}
}'レスポンスは 202 で、実行の id が含まれます。実行が終わるまで GET /v1/browser/runs/{id}?wait=30 で取得し、終わったら data を読みます。短縮記法では各フィールドを型に対応づけます。"price as shown, with currency" のような説明を書くと、そのフィールドは文字列になり、エージェントが説明どおりに値を入れます。列挙型、フォーマット、必須フィールドを使いたい場合は、代わりに完全な JSON Schema(draft 2020-12)を最大 20 KB まで送ります。
出力を安心して使える理由は次のとおりです。
JSON はスキーマに照らして検証されます。最初の試行が通らなければ、エージェントはエラーを受け取って 1 回だけ修正します。それでも通らない場合は、data_error に理由が入ります。
data はエージェントが訪れたページのテキストとリンクから組み立てられるため、リンクの URL は実在するものです。ページに表示されていない値は null で返り、表示する項目のないリストは空で返ります。
構造化出力はステップ料金に含まれています。
ブラウザを使わずに読み込み・クロールする
公開ページであれば、ブラウザは必要以上です。次のクロールは採用情報セクションを読み込み、50 ページで止まります。
curl https://lovelyrouter.com/v1/tools/website-crawl/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"startUrls": [{"url": "https://www.example.com/careers/"}],
"maxCrawlDepth": 2,
"excludeUrlGlobs": ["https://www.example.com/careers/archive/**"]
},
"max_results": 50
}'各アイテムは 1 ページ分の Markdown です。欲しいフィールドと一緒にページをモデルに渡せば、募集中の職種を JSON で得られます。includeUrlGlobs を使うと開始 URL の配下以外にもクロール範囲を広げられ、useSitemaps を使うとサイトのサイトマップにある URL も対象になります。
ツール
Give it a goal and a start page; an AI agent drives a real browser to do it: navigate, fill forms, log in with saved secrets, ask you for codes, hand over for CAPTCHAs, wait for your approval before purchases, and return structured JSON in your schema. For tasks that need interaction; to just read a page, use Read a web page (web-fetch). $0.006 per step in fast mode, $0.012 in accurate mode (looks at screenshots when unsure, can run read-only code to read data). Each step includes 1 minute; time beyond that (e.g. waiting for your approval) costs $0.005/min. Full API: /v1/browser.
公開されている Web ページを、ナビゲーションや広告を除いたきれいな Markdown(タイトルと本文)で読み取ります。URL がわかっている 1 ページ向けです。
Web サイト全体(または一部)をクロールし、各ページを LLM 向けのきれいな Markdown で返します。RAG やドキュメントサイトに最適。
Web ページの全体スクリーンショット(PNG または PDF)。画像へのリンクを返します。
Web サイトをクロールし、メールアドレス、電話番号、SNS プロフィールのリンクを抽出します。
レシピ
各競合の料金ページで、{"plans": [{"name": "string", "price_per_month": "number", "includes_sso": "boolean"}]} を指定してブラウザエージェントを実行します。長い表には "mode": "accurate" を使いましょう。表示されているテキストだけでなく、読み取り専用のページコードからも表を読めます。
検索語をゴールに書き(「ノイズキャンセリングヘッドホンを検索して最初の 5 件を取得してください」など)、フィールドをスキーマで説明します。データはエージェントが最後に訪れた 6 ページから作られるため、ページ送りのある長いリストは、1 ページまたは数ページごとに実行を分けてください。
抽出の実行に、ボールトの secrets か保存した profile を渡します。シークレットの値が data に現れることはありません。
"format": "pdf" を指定して website-screenshot を実行すると、ある日にページに何が書かれていたかをページ全体でキャプチャできます。コンテンツの読み込みが遅い場合は delayMs を指定します。
サイトを startUrls として website-contacts に送ると、Web サイトごとのメールアドレス、電話番号、SNS リンクが得られます。
料金
ページの読み込みは $0.0009 で、読み込めなかったページは無料です。クロール、スクリーンショット、連絡先のツールは、ページ、スクリーンショット、Web サイト 1 件ごとに課金され、クロールには呼び出し料金もかかります。現在の価格は上のカードに表示されています。ブラウザエージェントはステップ単位の課金で、高速モードは $0.006、高精度モードは $0.012 です。モデル料金と構造化出力が含まれ、実行料金はかかりません。どの実行も最初に最大費用を仮押さえし、実際の利用分で精算されます。サブスクリプションはありません。詳しくは料金をご覧ください。
よくある質問
スクレイパーツールではなくブラウザエージェントを使うべきなのはどんなときですか?+
プラットフォームがカタログでカバーされていればカタログのツールを、公開ページには web-fetch や website-crawl を使います。検索、絞り込み、クリック、ログインをしないとデータが表示されない場合に、ブラウザエージェントを使います。
抽出した JSON はスキーマに照らして検証されますか?+
はい。結果は検証され、最初の試行がスキーマに合わなければエージェントが 1 回だけ修正します。それでも抽出に失敗した場合は、data が null になり、data_error に理由が入ります。
ページにないフィールドはどうなりますか?+
null で返り、リストは空で返ります。エージェントは訪れたページだけから data を組み立て、推測で値を埋めることはありません。
Web サイト全体を Markdown で取得できますか?+
はい。サイトを丸ごと Markdown に変換するなら website-crawl ツールを使います。このツールは、サイトやセクションの各ページを整形済みの Markdown で返します。ページ数と深さの上限や、含める・除外する URL パターンを指定できます。
構造化出力に追加料金はかかりますか?+
いいえ。構造化出力はブラウザエージェントのステップ料金に含まれています。
関連ページ:フォームの送信には Web 自動化、検索と RAG にはリサーチエージェント、そして構造化出力のガイドをご覧ください。