メインコンテンツへスキップ
Olostepの/v1/batchesエンドポイントを使用すると、1つのバッチで最大100,000のURLを処理できます。バッチは約5〜8分かかります。非同期的にコンテンツや構造化データを大規模に抽出するために使用してください。
  • 1バッチあたり最大100,000のURLを送信可能
  • バッチサイズに関係なく、1つのバッチは約5〜8分かかります。バッチは非同期エンドポイントです
  • 多くのバッチを並行して実行し、数百万の同時リクエストにスケールアップ可能
  • パーサーを使用して構造化されたJSONを返すか、/v1/retrieveを介してmarkdown/htmlを取得
  • 低遅延または同期的に結果を取得したい場合は、スクレイプエンドポイントを使用し、多くの同時リクエストを送信してください。
APIの詳細については、バッチエンドポイントAPIリファレンスを参照してください。
注意: 新しいアカウントの場合、バッチは1バッチあたり100項目に制限されています。この制限を解除するには、info@olostep.comまでご連絡いただくか、Slackでお問い合わせください。

インストール

バッチを開始する

custom_idとurlを含むitemsの配列を提供します。これらはバッチで処理されるURLであり、custom_idはURLの内部一意識別子です。 オプションでparserまたはcountryを渡します。parserパラメータを通じて、バッチに使用するパーサーを指定できます。これにより、ページから構造化されたJSONが返されます。
Olostepはオブジェクト指向アプローチに従っているため、応答としてbatchオブジェクトを受け取ります。batchオブジェクトにはidやstatusなどのいくつかのプロパティがあります。

バッチステータスを確認

statusがcompletedになるまでポーリングします。処理されたURLの数を確認するには、completed_urlsプロパティを確認することもできます。

コンテンツを取得

各項目のretrieve_idを使用して、/v1/retrieveでhtml_content、markdown_content、またはjson_contentを取得します。

項目をリストする(カーソルでページネート)

GET /v1/batches/{id}/itemsはデフォルトで最大10000項目を返します(これが最大値です)。応答にcursorが含まれている場合、まだ項目が残っています。cursorを次のリクエストに渡し、存在しなくなるまで続けます。コンテンツにはretrieve_idを使用して/v1/retrieveを優先してください。

応答フォーマット

提供されたサンプルコードを実行すると、次のような応答を受け取ります
指定されたパーサーを渡して構造化されたJSONを取得し、それのみを印刷しているため、応答には以下が含まれます:
  • json_content 構造化された検索結果を含む
  • searchParameters: 検索クエリに関する情報
  • knowledgeGraph: 検索対象に関する詳細情報(利用可能な場合)
  • organic: タイトル、リンク、位置、スニペットを含む検索結果のリスト
  • peopleAlsoAsk: ユーザーがよく検索する関連質問
  • relatedSearches: 関連する検索クエリの提案
構造化されたJSONではなく、単にmarkdownやhtmlが必要な場合は、retrieveエンドポイントからそれらを取得できます。

Webhooks

バッチステータスをポーリングする代わりに、バッチを作成する際に**webhook** URLを渡すことができます。Olostepはバッチが終了したとき(すべての項目が完了または失敗したとき)にそのURLにHTTP POSTを送信します。 あなたのWebhookエンドポイントは**http://またはhttps://で公開可能**である必要があります。localhostやプライベートIPアドレスを指すことはできません。完全なペイロードの形状、再試行の動作、およびベストプラクティス(2xxで迅速に応答し、イベントidを使用して重複を排除)については、Webhooksを参照してください。
パラメータ名: 正式なフィールドはwebhookです。後方互換性のために、**webhook_url**もエイリアスとして受け入れられます。
バッチの場合、batch.completedイベントにはバッチID、ステータス、項目数が含まれます。失敗した配信は自動的に再試行されます(約30分間で5回の試行、指数バックオフ)。ハンドラーは各試行で30秒以内に2xxステータスを返す必要があります。

メタデータ

カスタムの文字列キーと値のメタデータをバッチに添付して、追跡、フィルタリング、および独自のシステム(注文ID、プロジェクト名、パイプラインステージなど)とのジョブの相関を行います。メタデータは、メタデータリファレンスと同じルールに従います。 バッチを作成する際に、2つのレベルでメタデータを設定できます:
  • バッチレベル — リクエストボディのmetadata(バッチ全体に適用)
  • 項目レベル — items配列内の各オブジェクトのmetadata(URLごと)
メタデータは、そのバッチに対する後続のGET応答で返されます。バッチの更新(PATCH)を使用して後でバッチメタデータをマージ更新できます。追加、上書き、削除の動作については、メタデータガイドを参照してください。
型の強制: 数値とブール値は文字列に変換されます(例えば、42 → "42"、true → "true")。ネストされたオブジェクトと配列は拒否されます。
完全な例とPATCHのセマンティクスについては、メタデータを参照してください。

重要な注意事項

構造化されたJSONが必要な場合は、リクエストを送信する前にAPIに特定のパーサーを渡す必要があります。例えば、Google検索からJSONを取得したい場合は、このパーサーを渡します "parser": {"id": "@olostep/google-search"}。独自のパーサーを作成して、任意のページから必要なデータを取得できます。詳細はinfo@olostep.comまでお問い合わせください。

結論

バッチエンドポイントは、短期間で多くのURLからデータを取得する必要がある場合に便利です。データを取得したいURLのリストをすでに持っている必要があります。 一般的な用途には以下が含まれます:
  • 複数のeコマースサイトで製品の価格変動を監視する価格追跡サービス
  • 多数のページでコンテンツの更新を確認するウェブサイト監視ツール
  • 複数の会場でのチケットの可用性を追跡するコンサートオーガナイザーのためのデ