/v1/scrapesエンドポイントを使用すると、任意のURLからリアルタイムでLLM対応のMarkdown、HTML、テキスト、スクリーンショット、または構造化されたJSONを抽出できます。
- クリーンなMarkdown、構造化データ、スクリーンショット、またはHTMLを出力
- ParsersまたはLLM抽出を通じてJSONを抽出
- 動的コンテンツを処理:jsでレンダリングされたサイト、アクションを介したログインフロー、PDF
storageパラメータで結果の保持期間を制御
URLをスクレイプする
/v1/scrapesエンドポイントを使用して単一のURLをスクレイプし、出力形式を選択します。
インストール
使用法
このエンドポイントを使用して単一のURLをスクレイプし、出力形式を選択できます。必須パラメータはurl_to_scrapeとformatsです。
他の一般的なパラメータには、wait_before_scraping(ミリ秒単位)、remove_css_selectors(デフォルト、なし、またはセレクタの配列)、およびcountryがあります。
レスポンス
APIはレスポンスでscrapeオブジェクトを返します。
scrapeにはidやresultなどのいくつかのプロパティがあります。
resultオブジェクトには以下のフィールドがあります(formatsパラメータによってはnullかもしれません):
html_content: ページのHTMLコンテンツ。これを取得するにはformats: ["html"]を指定します。markdown_content: ページのMDコンテンツ。これを取得するにはformats: ["markdown"]を指定します。text_content: ページのテキストコンテンツ。これを取得するにはformats: ["text"]を指定します。json_content: ページのJSONコンテンツ。これを取得するにはformats: ["json"]を指定し、parserまたはllm_extractパラメータも提供します。screenshot_hosted_url: スクリーンショットのホストされたURL。html_hosted_url: HTMLコンテンツのホストされたURLmarkdown_hosted_url: MarkdownコンテンツのホストされたURLjson_hosted_url: JSONコンテンツのホストされたURLtext_hosted_url: テキストコンテンツのホストされたURLlinks_on_page: ページ上のリンクpage_metadata: ページのメタデータ
キャッシング
速度を最適化するために、OlostepはHTML、Markdown、テキスト、および解析されたJSON結果のためのオプションの共有キャッシングレイヤーを提供します。仕組み
スクレイプが要求されると、Olostepは同じパラメータで一致するスクレイプが既に存在するかどうかを確認します。新鮮な一致が見つかった場合、コンテンツは新しいブラウザスクレイプを起動せずにOlostepのストレージから即座に提供されます。- 共有キャッシュ: キャッシュはグローバルに共有されます。別のリクエストがあなたの新鮮さウィンドウ内で同じURLを同じ構成でスクレイプした場合、その速度向上の恩恵を受けます。
- ポストプロセッシングはまだライブ:
llm_extractやlinks_on_pageフィルターのような操作は、キャッシュされたドキュメントの上でオンザフライで実行されます。コアページの取得のみをキャッシュし、構造化された抽出を動的に保ちます。
新鮮さとmax_age
デフォルトでは、プロダクションAPIはリアルタイムの精度を保証するために常にライブスクレイプを実行します。max_ageパラメータを使用してキャッシングをオプトインできます。
- デフォルトAPI動作 (
max_age: 0): すべてのAPIリクエストは新しいスクレイプをトリガーします。 - デフォルトプレイグラウンド動作: ダッシュボードプレイグラウンドでは、
max_ageは24時間(86400秒)にデフォルト設定されています。 - 最大年齢: キャッシュには7日(
604800秒)のハードリミットがあります。この制限を超えるmax_ageが要求された場合、最大7日にフォールバックします。
使用例
キャッシュがスキップされる場合
キャッシュは自動的にバイパスされ(ライブスクレイプを強制)、リクエストが以下を必要とする場合:- インタラクティブセッション:
session_idを使用するリクエストやカスタムブラウザcontextをロードする場合。 - スクリーンショット:
formatsにscreenshotを含むリクエストやスクリーンショットオプションを設定するリクエストはキャッシュをバイパスします。 - 特別なファイルタイプ: バイナリファイルのダウンロードや生のPDFレンダリング。
- デバッグ&ネットワーク:
network_callsをキャプチャするか、非同期パーサージョブを使用する場合。
ストレージ
スクレイプ結果はデフォルトで約7日間保持されます。storageオブジェクトを渡して結果を長期間、または無期限に保持し、後で再取得できるようにします。結果、そのホストされたURL、およびGET /v1/scrapes/{scrape_id}はそのウィンドウ内で利用可能です。
max_ageは新しいリクエストがキャッシュされたページを再利用できるかどうかを制御します。storage.expires_inはこのスクレイプの結果がどれだけ長く利用可能であるかを制御します。max_ageについてはキャッシングを参照してください。
storageはすべてのプランでPOST /v1/scrapesで利用可能です。
使用法
リンクの抽出
ページ上のリンクを収集するためにlinks_on_pageオブジェクトをリクエストに渡します。すべてのリンクは絶対URLとして返されます。
include_links/exclude_links: 各リンクのURL パスに対して一致するグロブパターン。query_to_order_links_by: このテキストに関連する順序で返されるリンクを再注文します。
グロブパターンはパスセグメントに一致します。単一の
*は/を越えないため、"/blog/*"は"/blog/post-1"に一致しますが、インデックス"/blog"自体には一致しません。また、"/blog?tag=x"のようなクエリ文字列はパスの一部ではないため、決して一致しません。インデックスも含めるには、"/blog*"または"{/blog,/blog/**}"を使用します。スクレイプ形式
formatsを使用して1つ以上の出力形式を選択します:
markdown: LLM対応のMarkdownhtml: クリーンなHTMLtext: プレーンテキストjson: 構造化された出力(パーサーまたはllm_extractを介して)raw_pdf: ホストされたURLに抽出された生のPDFバイトscreenshot: アクションを介してスクリーンショットをキャプチャし、ホストされたURLを返す
result内で*_contentフィールドとして返され、*_hosted_urlも含まれます。
構造化データの抽出
構造化されたJSONを抽出するには、ParsersまたはLLM抽出を使用する2つの方法があります。パーサーを使用する(スケールにおすすめ)
formats: ["json"]を定義し、パーサーidを提供します。
LLM抽出を使用する(スキーマおよび/またはプロンプト)
llm_extractにJSONスキーマ(schema)および/または自然言語の指示(prompt)を提供します。両方のパラメータを渡すことができますが、両方が提供される場合はschemaが優先されます。
代わりに、promptだけを渡すと、LLMはプロンプトに基づいてデータを抽出し、データ構造を独自に決定します。
result.json_contentはすでに辞書です。Node SDKおよび生のAPIではJSON文字列なので、オブジェクトが必要な場合はそれを解析します(JSON.parse / json.loads)。
価格: llm_extractは1回のスクレイプにつき10クレジットがかかります。コストを下げるために、独自のAPIキーを持ち込むか、使用量ベースの価格設定を有効にすることができます。アクセスを取得するにはinfo@olostep.comに連絡してください。
ページ上のリンクを抽出する
links_on_pageオプションを使用して、スクレイプするページ上に存在するすべてのリンクを抽出できます。抽出されたリンクをフィルタリングおよび順序付けするための以下のパラメータを受け入れます:
absolute_links(ブール値、デフォルト:true):trueの場合、相対パス(例:/page)ではなく完全なURL(例:https://example.com/page)を返します。query_to_order_links_by(文字列):提供されたクエリテキストとの類似性によって返されるリンクを順序付け、最も関連性の高い一致を優先します。include_links(文字列の配列):グロブパターンを使用して抽出されたリンクをフィルタリングします。*.pdfのようなパターンを使用してファイル拡張子に一致させたり、/blog/*で特定のパスに一致させたり、https://example.com/*のような完全なURLを使用します。ワイルドカード(*)、文字クラス([a-z])、交互({pattern1,pattern2})をサポートします。exclude_links(文字列の配列):include_linksと同じ構文を使用して特定のリンクを除外します。
アクションを使用してページと対話する
動的なサイトと対話するためにスクレイプ前にアクションを実行します。サポートされているアクション:waitとmillisecondsclickとselectorfill_inputとselectorおよびvaluescrollとdirectionおよびamount
waitを使用することがよくあります。
例
markdown_content)が含まれます。
ユースケース
以下は、/scrapesエンドポイントを使用する顧客の実際のアプリケーションのいくつかです。
コンテンツ分析とリサーチ
- 競合分析: 競合他社のウェブサイトから製品の詳細、価格、機能を抽出
- 市場調査: ランディングページ、製品説明、顧客の声を分析
- 学術研究: 科学出版物や研究ポータルから特定のデータを収集
- 法的文書: 公式ウェブサイトからケーススタディ、規制、法的先例を抽出
Eコマースと小売
- 動的価格戦略: 競合ストアからリアルタイムの製品価格を取得
- 製品情報管理: 詳細な仕様と説明を抽出
- 在庫/在庫監視: 他の小売業者での製品の在庫状況を確認
- レビュー分析: 特定の製品に対する消費者のフィードバックと感情を収集
マーケティングとコンテンツ作成
- コンテンツキュレーション: ニュースレター用に関連する記事やブログ投稿を抽出
- SEO分析: 競合他社のキーワード使用、メタディスクリプション、ページ構造を調査
- リードジェネレーション: ビジネスディレクトリや企業ページから連絡先情報を抽出
- インフルエンサーリサーチ: インフルエンサープロフィールからエンゲージメントメトリクスやコンテンツスタイルを収集
- パーソナライズされたソーシャルメディア生成: 顧客のウェブサイトを分析してAI駆動のソーシャルメディアマーケティングを作成
データアプリケーション
- AIトレーニングデータ収集: 機械学習モデルのための特定の例を収集
- カスタムナレッジベース構築: ソフトウェアサイトからドキュメントや指示を抽出
- 歴史データアーカイブ: 特定の時点でのウェブサイトコンテンツを保存
- 構造化データ抽出: ウェブコンテンツを分析用にフォーマットされたデータセットに変換
モニタリングとアラート
- 規制遵守モニタリング: 法的または規制ウェブサイトの変更を追跡
- 危機管理: 特定のイベントや組織の言及をニュースサイトで監視
- イベント追跡: 会場や主催者のウェブサイトからのイベントの詳細を抽出
- サービスステータスモニタリング: 特定のプラットフォームやツールのサービスステータスページを確認
出版とメディア
- ニュース集約: 公式ソースからの速報ニュースを抽出
- メディアモニタリング: ニュースサイトで特定のトピックを追跡
- コンテンツ検証: 主張や声明をファクトチェックするための情報を抽出
- マルチメディア抽出: メディアライブラリ用に埋め込まれたビデオ、画像、音声を収集
金融アプリケーション
- 投資リサーチ: 企業ウェブサイトから財務諸表や年次報告書を抽出
- 経済指標: 政府や金融機関のウェブサイトから経済データを収集
- 暗号通貨データ: リアルタイムの価格と市場キャップ情報を抽出
- 金融ニュース分析: 特定の市場シグナルのために金融ニュースサイトを監視
技術アプリケーション
- APIドキュメント抽出: 参照用に技術ドキュメントを収集
- 統合テスト: サードパーティの統合を検証するためにウェブサイト要素を抽出
- アクセシビリティテスト: アクセシビリティ標準への準拠のためにウェブサイト構造を分析
- ウェブアーカイブ作成: 歴史的保存のためにウェブサイトの完全なコンテンツをキャプチャ
統合シナリオ
- CRMシステム: 企業ウェブサイトやLinkedinからのデータで顧客プロファイルを強化
- コンテンツ管理システム: 関連する外部コンテンツをインポート
- ビジネスインテリジェンストール: 外部市場情報で内部データを補完
- プロジェクト管理ソフトウェア: クライアントのウェブサイトからの仕様や要件を抽出
- カスタムダッシュボード: 内部メトリクスと並んで抽出されたデータを表示
エラーハンドリング
すべてのエラーは共通のエンベロープ形状に従います。error.typeとerror.codeを確認してプログラム的に分岐します:
DNS障害 (400)
ドメインが解決されません。URLにタイプミスがないか確認してください。TLS/SSLエラー (502)
ターゲットウェブサイトに壊れたまたは互換性のないHTTPS構成があります。error.detailは診断のための特定のSSLエラーコードを提供します。error.codeは常にtls_errorです。