JSON モード
LLM と JSON Schema 検証を使って Web ページから構造化データを抽出する
はじめに
JSON モードでは、大規模言語モデル(LLM)を使って任意の Web ページから構造化データを抽出できます。
AnyCrawl では JSON Schema とプロンプトを定義し、抽出処理をガイドできます。出力を希望の形式に合わせられます。
使用例
JSON モードには次の 3 つの構造化抽出パターンがあります。
- プロンプトのみ:自然言語のプロンプトで抽出したい内容を記述します。出力の構造は LLM が決めます。
- スキーマのみ:JSON Schema で出力構造を厳密に制約します。LLM が値を埋めます。
- プロンプト + スキーマ:構造と内容の両方を、スキーマとプロンプトで細かく指定します。
ヒント:extract_source で、構造化抽出の入力に生成済みの markdown を使うか、元の html を使うかを制御できます。既定は markdown です。Markdown で重要な構造が失われる場合は html を使います。
重要:json_options を使うときは formats に "json" を含めてください。含めないとレスポンスに抽出済み JSON が含まれません。
1. プロンプトのみ(柔軟な構造)
手順:
- 対象ページの URL を指定する
- 抽出したい情報をプロンプトで書く
- リクエストを送る
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"formats": ["json"],
"json_options": {
"user_prompt": "Extract the company mission, open source status, and employee count."
}
}'2. スキーマのみ(厳密な構造)
手順:
- 対象ページの URL を指定する
- 必要なフィールドと型の JSON Schema を定義する
- リクエストを送る
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"formats": ["json"],
"json_options": {
"schema": {
"type": "object",
"properties": {
"company_mission": { "type": "string" },
"is_open_source": { "type": "boolean" },
"employee_count": { "type": "number" }
},
"required": ["company_mission"]
}
}
}'3. プロンプト + スキーマ(構造と内容ガイド)
手順:
- 対象ページの URL を指定する
- 出力の JSON Schema を定義する
- 抽出をガイドするプロンプトを書く
- リクエストを送る
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"formats": ["json"],
"json_options": {
"schema": {
"type": "object",
"properties": {
"company_mission": { "type": "string" },
"is_open_source": { "type": "boolean" },
"employee_count": { "type": "number" }
},
"required": ["company_mission"]
},
"user_prompt": "Extract the company mission (string), open source status (boolean), and employee count (number)."
}
}'json_options オブジェクト
json_options パラメータは次のフィールドを受け取るオブジェクトです。
schema:抽出に使うスキーマ。user_prompt:抽出に使うユーザープロンプト。schema_name:生成する出力の名前(任意)。schema_description:生成する出力の説明(任意)。
JSON Schema
抽出に使うスキーマです。よく使うフィールドは次のとおりです。
type:値の型。サポートされる型は下表のとおりです。properties:(objectの場合)フィールドとそのスキーマを指定するオブジェクト。required:(objectの場合)必須フィールド名の配列。
サポートされる型
| 型 | 説明 | 例 |
|---|---|---|
string | テキスト | 会社名、説明、見出し |
number | 数値 | 価格、数量、評価 |
boolean | 真偽 | 在庫フラグ、機能の有無 |
object | 入れ子構造 | 住所、製品仕様 |
array | 値またはオブジェクトのリスト | タグ、カテゴリ、機能リスト |
スキーマの例
{
"type": "object",
"properties": {
"company_name": {
"type": "string"
},
"is_open_source": {
"type": "object",
"properties": {
"answer": {
"type": "string"
},
"value": {
"type": "boolean"
}
}
},
"employee_count": {
"type": "number"
}
},
"required": ["company_name"]
}関連ドキュメント
- Scrape API - JSON 抽出と基本スクレイプ
- Crawl API - JSON 抽出オプション付きクロール
- テンプレート - 高度なデータ抽出テンプレート