ChatGPT対Gemini対Perplexity:応答構造の比較
Lead Scraping Automation Engineer
TL;DR:
- 3人のアクター、1つのトランスポート、3つの応答形状。
scraper.chatgpt、scraper.gemini、scraper.perplexityはすべて同じエンドポイントにPOSTし、同じ{ status, task_id, task_result }のエンベロープを返しますが、task_resultの内部のフィールドはアクターによって異なります。 - 「sources」フィールドは各々異なる名前。 ChatGPTは
content_referencesとsearch_resultを返し、Geminiはcitations、Perplexityはweb_resultsを返します — 同じアイデアで3つのキー、アイテムごとに異なる形状。ソースを取得するために読むフィールドは3つのアクター間で移植できません。 - 製品を返すのはChatGPTのみ。
shoppingが有効な場合、scraper.chatgptは商店ごとのoffersを持つproducts配列を追加します;GeminiとPerplexityはショッピング機能を返しません。 - Perplexityが最も豊かなエンベロープを持つ。 回答と
web_resultsに加えて、media_items配列とrelated_promptリストを返します;Geminiは最も軽量で、回答テキストとcitations配列のみを返します。 - 入力フラグはアクターによって異なる。 すべてのアクターが
input内にpromptとcountryを受け取り、ChatGPTはオプショナルなshoppingフラグを追加し、Perplexityはweb_searchを追加します。パラメータは常にinput内にあり、トップレベルにはありません。 - すべてのフィールドはnullableでセッションごと。 結果として返される配列は、特定の実行で空になる場合があるため、選択するアクターによって依存できるフィールドが決まります —
task_idとキャプチャのタイムスタンプを保存し、単一の呼び出しではなくシリーズを読みます。 - 気軽に始められる。 新しいScrapelessアカウントには無料トライアルクレジットが含まれています — app.scrapeless.comでサインアップしてください。
はじめに:1つのプロンプト、3つの応答形状
同じ質問をScrapelessを介してChatGPT、Gemini、Perplexityに送信すると、3つの回答が返ってきます — 3つの異なるJSON形状で。トランスポートは同一:1つのPOST、1つのx-api-tokenヘッダー、1つの{ status, task_id, task_result }エンベロープ。変更されるのはtask_resultの内部であり、回答のソースを保持する鍵、製品が返されるか、メディアやフォローアッププロンプトが含まれるかです。これらのアクターの1つを読み取るクライアントは、他の2つを自動的に読み取るわけではありません。
これは返されるスキーマの開発者向け比較であり、どのモデルがより良い回答を示すかの評決ではありません。これは、scraper.chatgpt、scraper.gemini、scraper.perplexityが同じプロンプトに対して実際に返すもの、スキーマがどこで分かれるか、どのアクターをどの仕事にキャプチャするかをフィールドごとにマッピングしたものです。ツールカテゴリ自体の最良のLLMスクレーパーを表示するガイドでは、サーフェスをランク付けします;このガイドでは、彼らの応答形状を並べています。
各アクターがキャプチャする内容
3人のアクターはすべてUniversal Scraping APIであり、同じ方法でキャプチャされています:
scraper.chatgpt— ChatGPTの合成回答、それが引用したソース、(shoppingがオンの場合)商店ごとのオファーを持つ製品カルーセル。scraper.gemini— Geminiの回答と引用配列。3つの中で最も軽量です。scraper.perplexity— Perplexityの回答、そのウェブ結果ソース、インラインメディア、および提案するフォローアッププロンプト。
共有契約:同じエンドポイント、同じエンベロープ、同じ認証
すべてのアクターはhttps://api.scrapeless.com/api/v2/scraper/executeにPOSTし、x-api-tokenヘッダーと{ actor, input: { prompt, country, … } }のボディを持ち、すべてのアクターが{ status, task_id, task_result }を返します。アクターを入れ替えることは1行の変更です。
bash
curl -sS -X POST https://api.scrapeless.com/api/v2/scraper/execute \
-H "Content-Type: application/json" \
-H "x-api-token: ${SCRAPELESS_API_KEY}" \
-d '{ "actor": "scraper.gemini", "input": { "prompt": "best running shoes 2026", "country": "US" } }'
# actor: scraper.chatgpt | scraper.gemini | scraper.perplexity
トランスポートは移植可能ですが、パースはアクターごとです — task_resultが分岐します。
回答本文の比較
すべてのアクターは合成された回答をresult_textとして返します(マークダウン風のプローズ)。そのフィールド名は、3つすべての応答本文が共有する唯一のものです。3つのいずれも回答のマークダウンとHTMLのバリアントを別々に返しません — result_textはここでの単一の回答形式です。(異なるサーフェスであるscraper.aimodeアクターが回答をテキスト/マークダウン/HTMLに分割しますが、これらの3つはそうしません。)
スキーマが分岐する場所:引用とソース
「モデルは何を引用したか」という質問は、すべてのアクターにとって同じですが、各アクターで異なるフィールドです。
- ChatGPTはそれを二つに分けます:
content_references[](引用されたソース、各ソースにはtitle、url、attributionが含まれます)とsearch_result[](参照したウェブ結果、各結果にはtitle、url、snippet、attributionが含まれます)、web_searchのブール値によって制御されます。 - Geminiは単一の
citations[]配列を返し、各項目が最も詳細です:title、url、website_name、snippet、favicon、およびhighlights。 - Perplexityは
web_results[]を返し、最もシンプルなソース項目です:name、url、snippet。
同じコンセプト、三つのキー、三つの形態。Geminiのcitations[].website_nameに基づいて書かれた引用解析器は、Perplexityのweb_results[].nameに対してリマッピングなしでは機能しません。
プラットフォーム固有のフィールド
各アクターは他の二つが持っていないものを返します:
- ChatGPT — 商品。
input.shopping: trueを設定すると、scraper.chatgptは各商品に価格、評価、レビュー数を持つproducts[]配列を追加し、各販売者ごとに1エントリを含むoffers[]リストを返します。また、modelIDとlinks[]配列も返します。GeminiとPerplexityにはショッピングに関する情報はありません。 - Perplexity — メディアとフォローアップ。
scraper.perplexityはmedia_items[]配列(image、thumbnail、url、source、medium)と提案されたフォローアップ質問のリストrelated_prompt[]を返します — この二つは他の二つは返しません。 - Gemini — 追加なし。 Geminiの価値は逆です:プラットフォーム固有の表面を扱うことなく、クリーンな二つのフィールドの回答(
result_text+citations[])を提供します。
フィールドマトリックス:三者を横に並べて
| 概念的フィールド | scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
| 回答テキスト | result_text |
result_text |
result_text |
| 引用されたソース | content_references[](タイトル、URL、帰属) |
citations[](タイトル、URL、ウェブサイト名、スニペット、ファビコン、ハイライト) |
web_results[](名前、URL、スニペット) |
| ウェブ検索結果 | search_result[] + web_searchフラグ |
— | web_results[] |
| 商品 / オファー | products[] + offers[](shopping: trueを使用) |
— | — |
| メディア | — | — | media_items[] |
| 関連プロンプト | — | — | related_prompt[] |
| モデルID | model |
— | — |
| リンク | links[] |
— | — |
| エコーされたプロンプト | prompt |
prompt |
prompt |
| オプションの入力フラグ | shopping |
— | web_search |
アクターが提供するフィールドを知るためには列を見下ろし、なぜ一つのパーサーが三つ全てに対応できないのかを理解するには行を横に見ると良いでしょう。
無料プランでAPIキーを取得してください:app.scrapeless.com
入力パラメータの比較
inputオブジェクトはリクエスト側の非対称性が存在する場所です。全ての三者はpromptとcountryを必要とし、オプションのフラグは異なります。
inputフィールド |
scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
prompt |
必須 | 必須 | 必須 |
country |
必須 | 必須 | 必須 |
shopping |
オプション(→ products[]) |
— | — |
web_search |
オプション | — | オプション |
すべてのフィールドはinput内にあり、ボディのトップレベルでpromptやcountryを送信すると拒否されます。
三者間の変動性とヌル性
回答はセッションごとに生成されるため、同じプロンプトは一回ごとに異なるテキストと異なる配列の長さを返します。各アクターで。各フィールドをヌルとして扱いましょう:products[]はshoppingがオンでも空になることがあり、citations[]やweb_results[]の数は変動し、持続的に空の配列はそのクエリに対する回答がなかったことを意味します — 再送信するべきものではありません。すべての呼び出しでtask_idとキャプチャタイムスタンプを保存し、時系列が信号であり、単一の応答ではないようにしましょう。
決定ガイド:どの応答形式をどの仕事にキャプチャするか
| もし仕事が… | キャプチャ | 読む |
|---|---|---|
| 複数の売り手による価格 / 商品のモニタリング | scraper.chatgptでshopping: true |
products[] → offers[] |
| 豊富なソースメタデータによる引用共有 | scraper.gemini |
citations[](website_name、highlights) |
| ソース追跡とメディアおよびフォローアップ意図 | scraper.perplexity |
web_results[]、media_items[]、related_prompt[] |
| 最もシンプルな回答のみのキャプチャ | scraper.gemini |
result_text |
アクターを質問に固定しましょう。トランスポートが共有されているため、同じプロンプトと国で二つまたは三つを実行することは同じクライアントで異なるアクターストリングを使うことになり、各プラットフォームの表面から回答を一度に取得できます。
結論:三つの形態、一つのクライアント
輸送は共有されており、パースは異なります:scraper.chatgpt、scraper.gemini、およびscraper.perplexityは同じエンドポイントとエンベロープに応答しますが、task_resultは異なります — 異なるソースキー、ChatGPT専用製品、Perplexity専用メディアとフォローアップ、Geminiのシンプルな二つのフィールドの形状。必要なフィールドによってアクターを選択し、アクターごとにtask_resultをマッピングし、すべてのフィールドをnullableとして扱います。ユニバーサルスクレイピングAPIクレジットでスケジュールに固定のプロンプトセットを実行し、1つのクライアントが3つのプラットフォームの応答をすべてキャプチャします。ここでのフィールド名は、各アクターのLLMチャットスクレイパーリファレンスのライブ実行に対して確認されています。
AI回答データパイプラインの構築準備はできましたか?
私たちのコミュニティに参加して、無料プランを取得し、AI回答データパイプラインを構築している開発者とつながりましょう:Discord · Telegram。
app.scrapeless.comにサインアップして無料トライアルクレジットを取得し、ChatGPT、Gemini、Perplexityに1つのクライアントをポイントして、プログラムが追跡するクエリに対する3つの回答形状をすべてキャプチャします。
FAQ
Q: すべての3つのアクターは同じ入力を受け取りますか?
すべての3つはinputオブジェクト内のpromptとcountryを受け取ります。scraper.chatgptはオプションのshoppingフラグを追加し、scraper.perplexityはweb_searchを追加します。パラメーターは常にinput内にあり、トップレベルには決してありません。
Q: なぜ引用フィールドの名前が3つで異なるのですか?
各アクターは自分のプラットフォームからレンダリングされた回答をパースするため、ソースデータはプラットフォームごとに形状が異なります — ChatGPTのcontent_references、Geminiのcitations、Perplexityのweb_resultsは異なるキーと異なるアイテムごとのフィールドを持ちます。共有キーを仮定するのではなく、そのアクターが返すフィールドを読み取りましょう。
Q: 1つのクライアントは書き直さずにすべて3つを読み取れますか?
輸送については、はい — 同じエンドポイント、x-api-tokenヘッダー、および{ status, task_id, task_result }エンベロープです。アクター名を入れ替え、task_resultキーをアクターごとにマッピングします。内部フィールドセットが異なるためです。
Q: どのアクターがショッピングまたは製品データを返しますか?
scraper.chatgptはinput.shopping: trueで、マーチャントごとのoffers[]を持つproducts[]配列を生成します。GeminiとPerplexityはショッピングの情報を返しません。
Q: なぜ同じプロンプトが異なる実行で異なるフィールドを返すのですか?
回答はセッションごとに生成され、実行によって異なります;すべてのフィールドがnullableであり、配列が空で返されることもあります。継続的に空の結果はそのクエリに対する回答がないものとして扱い、task_idとキャプチャタイムスタンプを保存してシリーズが信号となるようにします。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



