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

URLのスクレイピング

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

インストール

# pip install requests

import requests

使用方法

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

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
    "url_to_scrape": "https://en.wikipedia.org/wiki/Alexander_the_Great",
    "formats": ["markdown", "html"]
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
}

response = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(response.json(), indent=2))

レスポンス

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を提供します。
import requests, json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://www.google.com/search?q=alexander+the+great&gl=us&hl=en",
  "formats": ["json"],
  "parser": { 
    "id": "@olostep/google-search" 
  }
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>", 
    "Content-Type": "application/json"
}

res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
Olostepには人気のあるウェブサイト用のいくつかの事前構築されたパーサーがありますが、ダッシュボードを通じて独自のパーサーを作成することも、チームに依頼して作成してもらうこともできます。 パーサーは自己修復型で、ウェブサイトの最新バージョンに自動的に更新されます。

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

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

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://www.berklee.edu/events/stefano-marchese-friends",
  "formats": ["markdown", "json"],
  "llm_extract": {
    "schema": {
      "event": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "date": {"type": "string"},
          "description": {"type": "string"},
          "venue": {"type": "string"},
          "address": {"type": "string"},
          "start_time": {"type": "string"}
        }
      }
    }
  }
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
}
res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
注意: result.json_contentは文字列化されたJSONを返します。オブジェクトが必要な場合は、コード内で解析してください。

アクションを使用してページと対話する

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

import requests, json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://example.com/login",
  "formats": ["markdown"],
  "actions": [
    {"type": "fill_input", "selector": "input[type=email]", "value": "john@example.com"},
    {"type": "wait", "milliseconds": 500},
    {"type": "fill_input", "selector": "input[type=password]", "value": "secret"},
    {"type": "click", "selector": "button[type=\"submit\"]"},
    {"type": "wait", "milliseconds": 1500}
  ]
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>", 
    "Content-Type": "application/json"
}
res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
レスポンスには、要求された形式(例: markdown_content)が含まれます。

ユースケース

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

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

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

Eコマースと小売

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

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

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

データアプリケーション

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

モニタリングとアラート

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

出版とメディア

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

金融アプリケーション

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

技術的アプリケーション

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

統合シナリオ

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

価格

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