ブログに戻ります

ChatGPT スクレイパー API: 回答と引用証拠を取得する

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

30-Sep-2026

TL;DR:

  • ChatGPTの回答スナップショットは、選択された条件下での1つの観察を記録します。 プロンプト、国、および検索設定を、返された回答と一緒に保存してください。
  • 回答収集とウェブページ抽出は異なる問題を解決します。 回答内の引用が、引用されたページがすべての文を支持することを証明するわけではありません。
  • ChatGPTスクレイパーAPIはタスクライフサイクルを使用します。 タスクを作成し、その識別子を保持し、完了した結果を別に読み取ります。
  • 欠落した引用フィールドは明示的な処理が必要です。 監視テーブルに減少させる前に、生のペイロードを保存してください。
  • 無料でスタートできます。 新しいScrapelessアカウントには無料のスクレイピングブラウザの実行時間が含まれています — app.scrapeless.comでサインアップしてください。

はじめに: 可視性を測る前に回答を捉える

ブランドの可視性観察には、実際に返された回答が必要であり、モデルの記憶から再構築された回答ではありません。収集の際のプロンプトと状況は、その観察の一部です。プロンプトが変更されると、推奨される内容とそれに関連付けられた情報源の両方が変わる可能性があります。

ChatGPTスクレイパーAPIは、データとして回答の表面を収集します。リストにあるページを訪れ、その内容を抽出するように言語モデルに要求するわけではありません。それがあなたの目標である場合、ウェブサイトスクレイパーを構築するためにChatGPTを使用する方法は、異なる取得問題をカバーします。同じモデル名が両方に現れる場合でも、これら二つのデータセットは別々に保持してください。

このガイドは、現在のScrapelessタスクインターフェースの周りに回答アーカイブを構築します。このアーカイブは、元の応答バイトを保持し、回答と引用フィールドを検査します。また、GEO研究チームに、1つの応答を普遍的なランキングとして扱うことなく、正当な観察単位を提供します。

ChatGPT回答アーカイブがサポートできることは?

回答アーカイブは、制御されたプロンプトセットと収集条件を通じて比較をサポートします。その最初の仕事は証拠を保存することです。スコアリングはその後に続きます。

  • ブランド言及のレビュー。 回答が製品を名指ししているかを確認し、あいまいな部分文字列をカウントするのではなく、その周囲の文章を保持します。
  • 引用インベントリ。 ソースのURLをソースタイトルから別々に保存し、名前が変更されたページが偶然に新しいソースにならないようにします。
  • メッセージ分析。 同じ質問文に対する推奨の理由を比較します。
  • 地域的観察。 国を収集設定として記録し、国だけではすべての個別ユーザーセッションを再現できないことを認識します。
  • コンテンツプランニング。 新しい記事がどの証拠を提供すべきかを決定する前に、回答に現れる質問とソースタイプを検査します。

公共のHTTP標準に関するプロンプトは、題材に安定した参照文書があるため、有用な初期例です。商業推奨プロンプトは、応答処理が機能している場合、その後に続くことができます。

Scrapeless ChatGPTアクターを使用する理由は?

Scrapeless ChatGPTアクターは、文書化されたインターフェースを通じて回答テキストと関連するソース情報を公開します。アクター識別子はscraper.chatgptです。現在のChatGPT回答キャプチャ契約は、その入力と応答フィールドを説明しています。アクターは、AIスクレイパー製品のホームの下に位置し、別の製品経路ではありません。

管理されたインターフェースは、クライアント内でチャットインターフェースセレクターを維持する必要を排除します。また、すべての回答属性を必須にしたり、モデルの変動を排除したり、引用を確認された事実に変換したりすることはありません。これらの責任は、応答を消費するアプリケーションに残ります。

プロンプトコレクションを拡張する前に、最新の商業条件についてはScrapelessの価格を確認してください。この例では意図的にショッピングデータを無効にし、レイテンシや回答ごとのコストの約束も行っていません。

回答収集の前提条件

Python 3.12、Requests 2.34.2、およびChatGPTアクターにアクセスできるScrapelessアカウントを使用します。SCRAPELESS_API_KEYをローカルに設定してください。資格情報をプロンプト、ソースファイル、または保存された応答メタデータに入れないでください。

認証されたタスクの作成と結果の取得にはそのキーが必要です。この例は現在の契約に対して構文チェックが行われていますが、認証された回答キャプチャは、資格情報が利用できないところでのライブ検証が保留中です。以下のサンプル回答は、完了したAPI結果として提示されるものではありません。

アクティブな仮想環境内にHTTPクライアントをインストールしてください:

bash Copy
python -m pip install requests==2.34.2

明示的な回答設定でタスクを作成する

タスクの作成は、アクター名と入力オブジェクトを現在のリクエストエンドポイントに送信します。prompt および country はChatGPTアクターに必要です。データセットがそれに依存している場合、オプショナルなブーリアンは明示的にする必要があります。

設定 例の選択 なぜ保持するのか
prompt 公開HTTPソースに関する質問 実際に尋ねられた質問を定義します
country US 地域の収集条件を記録します
web_search true 検索の強化を要求します; 返された証拠を検査します
shopping false この例を回答と情報源の情報に集中させます

エンドポイントは POST /api/v2/scraper/request と GET /api/v2/scraper/result/{task_id} です。古い単一呼び出しの例が同じライフサイクルを使用しているとは推測しないでください。タスク作成の応答は、完了した回答ではありません。

リクエストの成功とアプリケーションの完了の区別は、HTTPレスポンスのセマンティクスにも現れます: HTTPステータスは交換を説明し、タスクのステータスは作業を説明します。

Scrapelessでスクレイピングを開始する

Scrapelessを使って、ウェブスクレイピングと自動化のワークフローを強化しましょう!
今日サインアップして、$5の無料クレジットを獲得しましょう — クレジットカードは不要です。

今すぐScrapeless Dashboardで無料クレジットを請求してください。

フィールドを検査する前に元の応答を保持する

回答コレクターは、応答を解析して狭いスキーマに変換する前に、元の応答を保存する必要があります。これは、サービスが予期しないエンベロープを返したり、条件付きフィールドが変更されたりした際の証拠を保持します。

次の完全なスクリプトを chatgpt_capture.py として保存してください。注: このブロックは実際のAPIキーを必要とし、認証されたライブ検証が保留中です。 最初に TASK_ID なしで実行して、タスクを作成します。作成応答を保持し、その返された識別子を TASK_ID として、後で同じスクリプトを呼び出してそのタスクの結果を読む際に使用します。

python Copy
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests

root = Path('answer-evidence')
root.mkdir(exist_ok=True)
task_id = os.environ.get('TASK_ID')
headers = {'x-api-token': os.environ['SCRAPELESS_API_KEY']}
settings = {
    'prompt': 'Which public sources explain HTTP semantics?',
    'country': 'US', 'web_search': True, 'shopping': False
}
if task_id:
    response = requests.get(
        f'https://api.scrapeless.com/api/v2/scraper/result/{task_id}',
        headers=headers, timeout=60)
    name = 'result'
else:
    response = requests.post(
        'https://api.scrapeless.com/api/v2/scraper/request',
        headers=headers,
        json={'actor': 'scraper.chatgpt', 'input': settings}, timeout=60)
    name = 'creation'

# Keep the original bytes, including unsuccessful responses.
stamp = datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%S%fZ')
path = root / f'{name}-{stamp}'
path.with_suffix('.body').write_bytes(response.content)
path.with_suffix('.meta.json').write_text(json.dumps({
    'task_id': task_id, 'settings': settings if not task_id else None,
    'http_status': response.status_code, 'captured_at': stamp
}, indent=2))
response.raise_for_status()
data = response.json()
if not task_id:
    print(json.dumps(data, indent=2))
    print('Keep the returned task identifier; set TASK_ID for result retrieval.')
else:
    status = data.get('status')
    print(json.dumps({'task_id': task_id, 'status': status}))
    if status == 'success':
        payload = data.get('task_result')
        if not isinstance(payload, dict):
            raise ValueError('Successful task has no object payload')
        if not isinstance(payload.get('result_text'), str):
            raise ValueError('Answer text missing; inspect saved raw body')
        print(json.dumps({
            'answer_characters': len(payload['result_text']),
            'citation_field_present': 'content_references' in payload,
            'citation_field_type': type(payload.get('content_references')).__name__
        }))

スクリプトは呼び出しごとに1つのリクエストを行います。リクエストのタイムアウト内にタスクが終了することを約束するものではありません。識別子フィールドを推測するのではなく、保存された作成エンベロープを検査し、結果エンドポイントを通じてその特定のタスクを読み取ってください。

pending または running を持つ結果は未完成です。failed を持つ結果は失敗した観察であり、空の回答ではありません。success で、task_result を検査し、完了した結果を迅速に自分のアーカイブに保存してください。タスクライフサイクルはステータス状態を定義します; このデザインには固定保持約束は不要です。

誇張せずに引用証拠を読む

引用証拠は、回答とともに公開されたソースを記録します; それは回答の真実を検証するものではありません。返されたURLは、ソースリンク、補足リンク、または検索の強化に関連するエントリである可能性があります。これらのカテゴリーを明確に区別してください。

アクターフィールド 解釈 アプリケーションの処理
result_text Markdown回答テキスト 受け入れられた回答観察に必要です
model 返されたモデル識別子 受け取った値を保存します; 固定コードにしないでください
web_search 返された検索強化フラグ 要求された設定と比較します
content_references 提供された場合の回答帰属情報 エントリを保持し、空ではないものと区別します
search_result 検索関連のエントリ 提供されている場合は、タイトル、スニペット、帰属、URLを保持します
links 補足リンク 自動的にすべてのリンクを回答の引用として数えないでください

これらは認証された応答サンプルではなく、文書化されたフィールドの意味です。JSONオブジェクトは、必要な回答を欠いている場合でも、構文的には有効であり得ます; JSONデータフォーマットは構文を定義し、タスクの完全性を定義しません。

必要な回答のプロパティを、JSONスキーマ制約を用いて別々に検証してから、応答からメトリクスを導き出してください。

アーカイブは、元のリクエスト、タスクの結果、および派生スコアをつなぐ必要があります。その関係は、データの起源の実用的な価値です。観察されたソース証拠を保存し、後のスコアリングルールの変更を独立して追跡可能にします。

制御された観察テーブルを構築する

有用な観察テーブルは、安定したプロンプト識別子と収集条件によって回答をグループ化します。それは、生の証拠へのポインタを保持し、その証拠を単一の可視性スコアで置き換えるべきではありません。

prompt_id、正確なプロンプトテキスト、国、要求されたオプション、タスク識別子、キャプチャ時間、タスクステータス、および生の結果の場所を保持します。ブランドの言及や引用URLは派生テーブルに入れます。これにより、パーサーを修正するために異なる回答を収集することなく、エンティティマッチングルールを変更できます。

質問と設定が比較をサポートする場合にのみ、回答を比較します。一方の回答に欠けている製品は、その条件下で観察された欠如であり、モデルがその製品を推奨しないことの証明ではありません。逆に、応答に現れる引用URLは、質問間での持続的な可視性の証明ではありません。

公共の可視性データセット用にアカウント履歴、プライベート会話のエクスポート、または機密プロンプトを収集するのは避けてください。チームメンバーが偶然に顧客情報を挿入した場合は、保存されるプロンプトコンテンツを最小限に抑えます。アーカイブには公共の研究質問が含まれるべきであり、無関係な個人の文脈は含まれません。

結論: 観察を保存し、次にスコアリングする

ChatGPTスクレーパーAPIは、クライアントがリクエスト条件、完了した回答、およびソース証拠を一緒に保持する場合、可視性研究に役立ちます。タスクライフサイクルが観察を供給し、アプリケーションが受け入れルールと分析を供給します。

小規模な承認済みプロンプトセットから始めます。最初の認証された結果を検査し、それらの実際のエンベロープをマッピングし、チャートを生成する前に欠落フィールドの取り扱いを定義します。その後、アーカイブは仮定が可視性を持つ比較をサポートできます。


AIパワードデータパイプラインを構築する準備はできていますか?

無料プランを請求し、ウェブデータパイプラインを構築している開発者とつながるためにコミュニティに参加してください: Discord · Telegram。

無料のスクレイピングブラウザランタイムにサインアップし、上記のパターンを自分の公共データワークフローに適応させてください: app.scrapeless.com。


FAQ

Q: ChatGPTスクレーパーAPIは引用されたウェブページをすべて抽出しますか?

いいえ。ChatGPTスクレーパーAPIは、回答の表面と関連するソース情報を収集します。引用されたウェブページの取得と検証は別のワークフローです。

Q: ChatGPTの回答を収集することは合法ですか?

許可される範囲は、関連する条件、アクセス条件、権利、および管轄に依存します。承認された公共データ研究プロンプトを使用し、製品収集ポリシーについて法的レビューを受けてください; 公共の可視性だけでは包括的な許可にはなりません。

Q: Pythonクライアントは独自のプロキシが必要ですか?

管理されたアクターがAPIの背後で取得を処理します。クライアントは文書化された country パラメータを設定します; この例では、別のブラウザプロキシを設定する必要はありません。

Q: 未完了または失敗したタスクはレポートで何を意味しますか?

未完了または失敗したタスクは不完全な観察です。受け入れられた回答とは別にそのステータスと証拠を保存し、言及がない成功した回答としてスコアリングしないでください。

Q: 空の引用リストは有効な結果ですか?

空の引用リストは、回答テキストを使用不能にすることなく発生する可能性があります。フィールドが欠如しているのか、nullであるのか、空のリストであるのかを記録し、実際の結果契約をレビューする前にそれらの状態を等しくしないでください。

Q: AIエージェントなしで回答収集を実行できますか?

はい。Requestsクライアントは、文書化されたタスクエンドポイントに直接話しかけます。クライアントを操作するためにエージェントフレームワークや生成されたスクレイピングコードは必要ありません。

Q: 並行プロンプト収集はどのように始めるべきですか?

完全なライフサイクルと出力が検査されたタスクから始めます。その後、アカウントの文書化された容量と制約された収集計画を適用します; このガイドは普遍的なスループット制限を提供しません。

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ