メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.olostep.com/llms.txt

Use this file to discover all available pages before exploring further.

Olostepの/v1/scrapesエンドポイントを使用して、リアルタイムで任意のURLからLLMに適したMarkdown、HTML、テキスト、スクリーンショット、または構造化されたJSONを抽出できます。
  • クリーンなMarkdown、構造化データ、スクリーンショット、またはHTMLを出力
  • ParsersまたはLLM extractionを通じてJSONを抽出
  • 動的コンテンツを処理: JavaScriptでレンダリングされたサイト、アクションを介したログインフロー、PDF
APIの詳細については、Scrape Endpoint API Referenceを参照してください。

URLのスクレイピング

/v1/scrapesエンドポイントを使用して、単一のURLをスクレイプし、出力形式を選択します。

インストール

pip install olostep

使用方法

このエンドポイントを使用して、単一のURLをスクレイプし、出力形式を選択できます。必須のパラメータはurl_to_scrapeformatsです。 その他の一般的なパラメータには、wait_before_scraping(ミリ秒単位)、remove_css_selectors(デフォルト、なし、またはセレクタの配列)、およびcountryがあります。
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://en.wikipedia.org/wiki/Alexander_the_Great",
    formats=["markdown", "html"],
)

print(result.markdown_content)
print(result.html_content)

レスポンス

APIはレスポンスとしてscrapeオブジェクトを返します。 scrapeにはidresultのようなプロパティがあります。 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コンテンツのホストされたURL
  • markdown_hosted_url: MarkdownコンテンツのホストされたURL
  • json_hosted_url: JSONコンテンツのホストされたURL
  • text_hosted_url: テキストコンテンツのホストされたURL
  • links_on_page: ページ上のリンク
  • page_metadata: ページのメタデータ
{
  "id": "scrape_6h89o8u1kt",
  "object": "scrape",
  "created": 1745673871,
  "metadata": {},
  "retrieve_id": "6h89o8u1kt",
  "url_to_scrape": "https://en.wikipedia.org/wiki/Alexander_the_Great",
  "result": {
    "html_content": "<html...",
    "markdown_content": "## Alexander the Great...",
    "text_content": null,
    "json_content": null,
    "screenshot_hosted_url": null,
    "html_hosted_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/text_6h89o8u1kt.txt",
    "markdown_hosted_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/markDown_6h89o8u1kt.txt",
    "json_hosted_url": null,
    "text_hosted_url": null,
    "links_on_page": [],
    "page_metadata": { "status_code": 200, "title": "" }
  }
}

スクレイプ形式

formatsを通じて1つ以上の出力形式を選択します:
  • markdown: LLMに適したMarkdown
  • html: クリーンなHTML
  • text: プレーンテキスト
  • json: 構造化された出力(パーサーまたはllm_extractを介して)
  • raw_pdf: ホストされたURLに抽出された生のPDFバイト
  • screenshot: アクションを介してスクリーンショットをキャプチャし、ホストされたURLを返す
出力キーはresult内に*_contentフィールドとして返され、*_hosted_urlも返されます。

構造化データの抽出

構造化されたJSONを抽出する方法は2つあります:Parsersを使用するか、LLM抽出を使用します。

パーサーを使用する(スケールにおすすめ)

formats: ["json"]を定義し、パーサーidを提供します。
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://www.google.com/search?q=alexander+the+great&gl=us&hl=en",
    formats=["json"],
    parser="@olostep/google-search",
)

print(result.json_content)
Olostepには人気のあるウェブサイト用のいくつかの事前構築されたパーサーがありますが、ダッシュボードを通じて独自のパーサーを作成することもできますし、当社のチームに依頼することもできます。 パーサーは自己修復し、ウェブサイトの最新バージョンに自動更新されます。

LLM抽出を使用する(スキーマおよび/またはプロンプト)

llm_extractにJSONスキーマ(schema)および/または自然言語の指示(prompt)を提供します。両方のパラメータを渡すことができますが、両方が提供された場合、schemaが優先されます。 代わりに、promptだけを渡すと、LLMはプロンプトに基づいてデータを抽出し、データ構造を独自に決定します。
from olostep import LLMExtract, Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://www.berklee.edu/events/stefano-marchese-friends",
    formats=["markdown", "json"],
    llm_extract=LLMExtract(
        schema={
            "event": {
                "type": "object",
                "properties": {
                    "title": {"type": "string"},
                    "date": {"type": "string"},
                    "description": {"type": "string"},
                    "venue": {"type": "string"},
                    "address": {"type": "string"},
                    "start_time": {"type": "string"},
                },
            }
        }
    ),
)

print(result.json_content)
注意: result.json_contentは文字列化されたJSONを返します。オブジェクトが必要な場合は、コード内で解析してください。

アクションを使用したページとの対話

動的なサイトと対話するために、スクレイピング前にアクションを実行します。サポートされているアクション:
  • waitmilliseconds
  • clickselector
  • fill_inputselectorおよびvalue
  • scrolldirectionおよびamount
ページの読み込みを許可するために、他のアクションの前後にwaitを使用することがよくあります。

from olostep import FillInputAction, Olostep, WaitAction

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://example.com/login",
    formats=["markdown"],
    actions=[
        FillInputAction(selector="input[type=email]", value="john@example.com"),
        WaitAction(milliseconds=500),
        FillInputAction(selector="input[type=password]", value="secret"),
        {"type": "click", "selector": "button[type=\"submit\"]"},
        WaitAction(milliseconds=1500),
    ],
)

print(result.markdown_content)
レスポンスには、要求された形式(例:markdown_content)が含まれます。

ユースケース

以下は、/scrapesエンドポイントを使用している顧客の実用的なアプリケーションのいくつかです。

コンテンツ分析とリサーチ

  • 競合分析: 競合他社のウェブサイトから製品詳細、価格、機能を抽出
  • 市場調査: ランディングページ、製品説明、顧客の声を分析
  • 学術研究: 科学出版物や研究ポータルから特定のデータを収集
  • 法的文書: 公式ウェブサイトからケーススタディ、規制、または法的先例を抽出

Eコマースと小売

  • 動的価格戦略: 競合店舗からリアルタイムの製品価格を取得
  • 製品情報管理: 詳細な仕様と説明を抽出
  • 在庫/インベントリ監視: 他の小売業者での製品の在庫状況を確認
  • レビュー分析: 特定の製品に対する消費者のフィードバックと感情を収集

マーケティングとコンテンツ作成

  • コンテンツキュレーション: ニュースレターのために関連する記事やブログ投稿を抽出
  • SEO分析: 競合他社のキーワード使用、メタディスクリプション、ページ構造を調査
  • リードジェネレーション: ビジネスディレクトリや企業ページから連絡先情報を抽出
  • インフルエンサーリサーチ: インフルエンサープロフィールからエンゲージメントメトリクスとコンテンツスタイルを収集
  • パーソナライズされたソーシャルメディア生成: 顧客のウェブサイトを分析してAI駆動のソーシャルメディアマーケティングを作成

データアプリケーション

  • AIトレーニングデータ収集: 機械学習モデルのための特定の例を収集
  • カスタムナレッジベース構築: ソフトウェアサイトからドキュメントや指示を抽出
  • 歴史データアーカイブ: 特定の時点でのウェブサイトコンテンツを保存
  • 構造化データ抽出: ウェブコンテンツを分析のためのフォーマットされたデータセットに変換

モニタリングとアラート

  • 規制コンプライアンスモニタリング: 法的または規制ウェブサイトの変更を追跡
  • 危機管理: 特定のイベントや組織の言及をニュースサイトで監視
  • イベント追跡: 会場や主催者のウェブサイトからのイベント詳細を抽出
  • サービスステータスモニタリング: 特定のプラットフォームやツールのサービスステータスページを確認

出版とメディア

  • ニュース集約: 公式ソースからの速報ニュースを抽出
  • メディアモニタリング: ニュースサイトで特定のトピックを追跡
  • コンテンツ検証: 主張や声明をファクトチェックするための情報を抽出
  • マルチメディア抽出: メディアライブラリのために埋め込まれたビデオ、画像、またはオーディオを収集

金融アプリケーション

  • 投資リサーチ: 企業ウェブサイトから財務諸表や年次報告書を抽出
  • 経済指標: 政府や金融機関のウェブサイトから経済データを収集
  • 暗号通貨データ: リアルタイムの価格と市場キャップ情報を抽出
  • 金融ニュース分析: 特定の市場シグナルのために金融ニュースサイトを監視

技術的なアプリケーション

  • APIドキュメント抽出: 参照用の技術文書を収集
  • 統合テスト: サードパーティ統合を検証するためにウェブサイト要素を抽出
  • アクセシビリティテスト: アクセシビリティ標準への準拠のためにウェブサイト構造を分析
  • ウェブアーカイブ作成: 歴史的保存のためにウェブサイトコンテンツ全体をキャプチャ

統合シナリオ

  • CRMシステム: 企業ウェブサイトやLinkedinからのデータで顧客プロファイルを強化
  • コンテンツ管理システム: 関連する外部コンテンツをインポート
  • ビジネスインテリジェンストール: 外部市場情報で内部データを補完
  • プロジェクト管理ソフトウェア: クライアントのウェブサイトから仕様や要件を抽出
  • カスタムダッシュボード: 内部メトリクスと並んで抽出されたデータを表示

エラーハンドリング

すべてのエラーは共通のエンベロープ形状に従います。error.typeerror.codeをチェックしてプログラム的に分岐します:
{
  "id": "error_abc123",
  "object": "error",
  "created": 1745673871,
  "url": "https://example.com",
  "metadata": {},
  "error": {
    "type": "...",
    "code": "...",
    "message": "..."
  }
}
HTTPerror.typeerror.code意味
400invalid_request_errordns_resolution_failedドメインが存在しないか、URLにタイプミスがあります。
400invalid_request_errorinvalid_urlURLが不正です。
502invalid_request_errortls_errorウェブサイトが無効または互換性のないTLS/SSL証明書を持っています。error.detailには低レベルのSSLコードが含まれます。
504request_timeoutscrape_poll_timeoutスクレイプが約55秒の待機予算内に終了しませんでした。

DNS失敗 (400)

ドメインが解決しません。URLにタイプミスがないか確認してください。
{
  "error": {
    "type": "invalid_request_error",
    "code": "dns_resolution_failed",
    "message": "URLにタイプミスがあるか、ドメインが存在しません。"
  }
}

TLS/SSLエラー (502)

ターゲットウェブサイトが壊れているか、互換性のないHTTPS構成を持っています。error.detailは診断のための特定のSSLエラーコードを提供します。error.codeは常にtls_errorです。
{
  "error": {
    "type": "invalid_request_error",
    "code": "tls_error",
    "detail": "err_ssl_tlsv1_alert_internal_error",
    "message": "ウェブサイトがTLSハンドシェイクを閉じるか拒否しました。サーバーが誤って構成されているか、サポートされていないSSL/TLSバージョンを使用している可能性があります。"
  }
}

リクエストタイムアウト (504)

スクレイプが待機予算内に完了しませんでした。ページが遅い、ボット保護されている、または一時的に利用できない可能性があります。このレスポンスは再試行しても安全です。
{
  "error": {
    "type": "request_timeout",
    "code": "scrape_poll_timeout",
    "message": "スクレイプ結果を待つ間にリクエストがタイムアウトしました。ページが遅い、フェッチャーに対してブロックされている、または一時的に利用できない可能性があります。"
  }
}

価格

スクレイプはデフォルトで1クレジットかかります。parsersも使用する場合、コストはパーサーによって異なります(1〜5クレジット)。LLM extractを使用する場合、20クレジットかかります。