mcpField
S
scraperapi-datapipeline

scraperapi-datapipeline

github.com/scraperapiデータ・データベース10106 回インストール12 週間前に更新
リポジトリ

scraperapi-datapipeline について

ScraperAPI DataPipelineは、プロキシやリトライ、インフラを管理せずに定期的または大規模なデータ収集を行いたいチーム向けのマネージドサービスです。プロジェクトをスケジュール実行し、結果をWebhookで配信するか、ダッシュボードから取得できます。

主な機能

  1. 01対応するスクレイピング種別のプロジェクト設定
  2. 02定期実行または単発実行のスケジュール
  3. 03リスト、CSVファイル、Webhookによる入力
  4. 04Webhookまたはダッシュボードへの結果配信
  5. 05ジョブ完了時のメール通知設定

活用シーン

  1. 01固定スケジュールでデータを収集する
  2. 02大規模な入力リストをマネージドジョブで処理する
  3. 03完了した結果をアプリケーションへ自動送信する
  4. 04Webhook経由で動的な入力リストを取得する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scraperapi/scraperapi-skills --skill scraperapi-datapipeline

インストール後、Claude Code で/scraperapi-datapipelineを入力して読み込まれたか確認します。

詳細

ScraperAPI DataPipeline

DataPipeline は、スクレイピングを管理する製品です。プロジェクト(スクレイピング対象、実行頻度、結果の送信先)を定義すると、プロキシ、再試行、インフラストラクチャを管理することなく、ScraperAPI が設定したスケジュールに沿って実行します。

DataPipeline を使用すべきでないケース

  • 既知の URL リストを一度だけスクレイピングする場合 → Async API を使用してください。より高速で低コストであり、プロジェクトの設定も不要です。
  • URL がわからない状態でサイトを探索する場合 → Crawler を使用してください。
  • コード内でリアルタイムに結果を取得する必要がある場合 → Async API はプログラムから利用できますが、DataPipeline はスケジュールに沿って実行されます。
  • 無料プランで定期実行が必要な場合 → 定期スケジュールの利用には有料プランが必要です。

スクレイピングを固定スケジュールで実行する場合、入力リストが大規模(最大 100,000 件)な場合、結果を Webhook に自動で送信する場合、またはジョブ完了時のメール通知が必要な場合は、DataPipeline を使用してください。

ベース URL と認証

Base URL: https://datapipeline.scraperapi.com/api
Auth:     ?api_key=YOUR_KEY  (query parameter on every request)

プロジェクトの種類

スクレイピング対象を選択するには、作成リクエストで projectType を設定します。

種類入力
urls任意の URL から取得した生の HTML
urls_with_jsJavaScript レンダリングを使用する場合。同上
google_search検索クエリ
google_news検索クエリ
google_jobs検索クエリ
google_shopping検索クエリ
google_maps検索クエリ
amazon_productASIN
amazon_search検索クエリ
amazon_offersASIN
walmart_product商品 ID
walmart_search検索クエリ
walmart_categoryカテゴリ ID
walmart_reviews商品 ID
ebay_product12 桁の商品 ID
ebay_search検索クエリ
redfin_listing_for_sale物件掲載 URL
redfin_listing_for_rent物件掲載 URL
redfin_listing_search検索結果 URL
redfin_agent_detailsエージェントのプロフィール URL

プロジェクトの作成

import os, requests

API_KEY = os.environ["SCRAPERAPI_API_KEY"]
BASE    = "https://datapipeline.scraperapi.com/api"

project = requests.post(
    f"{BASE}/projects",
    params={"api_key": API_KEY},
    json={
        "name":               "Weekly Amazon price monitor",
        "projectType":        "amazon_product",
        "schedulingEnabled":  True,
        "scrapingInterval":   "weekly",
        "scheduledAt":        "now",
        "projectInput": {
            "type": "list",
            "list": ["B09V3KXJPB", "B08N5WRWNW"]   # ASINs
        },
        "apiParams": {
            "country_code": "us"
        },
        "webhookOutput": {
            "url":             "https://yourapp.com/pipeline-results",
            "webhookEncoding": "multipart_form_data_encoding"
        },
        "notificationConfig": {
            "notifyOnSuccess": "with_every_run",
            "notifyOnFailure": "with_every_run"
        }
    }
).json()

print(f"Project created: id={project['id']}")
作成リクエストのフィールド
フィールド必須説明
nameいいえ人が読んでわかるプロジェクト名
projectTypeはいスクレイピング対象(上の表を参照)
schedulingEnabledいいえ定期スケジュールを有効にする場合は true
scrapingIntervalはい(スケジュールを設定する場合)以下のスケジュールオプションを参照
scheduledAtいいえ作成時にすぐ実行する場合は "now"
projectInputはい入力データ(以下の入力方法を参照)
apiParamsいいえ標準の ScraperAPI パラメーター
webhookOutputいいえWebhook 配信の設定
notificationConfigいいえメール通知の設定

入力方法

リストを直接指定(最大 500 件)
{
  "projectInput": {
    "type": "list",
    "list": ["query one", "query two", "B09V3KXJPB"]
  }
}
CSV ファイル(最大 100,000 件)

1 行につき URL/クエリ/ASIN を 1 つ記載した CSV をアップロードします。ヘッダー行やカンマは使用しないでください。プロジェクト作成時にダッシュボードからアップロードしてください。API で受け付けるのはリスト形式の入力のみです。

Webhook 入力(動的なポーリング)
{
  "projectInput": {
    "type": "webhook",
    "webhookUrl": "https://yourapp.com/input-items"
  }
}

ジョブの開始時に、ScraperAPI がアイテムリストを取得するため、Webhook URL をポーリングします。1 行につき 1 アイテムを指定し、カンマは使用しないでください。動的に生成されるリスト(例:前回の実行後に追加された新しい ASIN)に便利です。

スケジュールオプション

scrapingInterval説明
"once"ジョブを 1 回だけすぐに実行
"hourly"1 時間ごと
"daily"1 日に 1 回
"weekly"1 週間に 1 回
"monthly"1 か月に 1 回
"cron"カスタム cron 式(interval の代わりに cron フィールドを使用)

定期スケジュール(hourly、daily、weekly、monthly、cron)の利用には有料プランが必要です。

プロジェクトの作成時に初回の実行をすぐに開始するには、"scheduledAt": "now" を設定します。

出力/配信

Webhook 配信

結果は完了次第、Webhook URL に POST されます。形式は webhookEncoding フィールドで指定します。

{
  "webhookOutput": {
    "url":             "https://yourapp.com/results",
    "webhookEncoding": "multipart_form_data_encoding"
  }
}
ダッシュボードからのダウンロード

webhookOutput を省略すると、結果は DataPipeline ダッシュボードからダウンロードできるようになります。結果は30 日間保持され、その後自動的に削除されます。

プロジェクトの種類ごとの出力形式:

  • urls / urls_with_js → JSONL でラップされた HTML
  • 構造化データの種類(Amazon、Google、Walmart、eBay、Redfin)→ JSON または CSV

プロジェクトの管理

# List all projects
projects = requests.get(f"{BASE}/projects", params={"api_key": API_KEY}).json()

# Get a single project
project = requests.get(f"{BASE}/projects/525", params={"api_key": API_KEY}).json()

# Update (partial update — only include fields to change)
requests.patch(
    f"{BASE}/projects/525",
    params={"api_key": API_KEY},
    json={
        "scrapingInterval": "daily",
        "apiParams":        {"premium": True},
        "notificationConfig": {"notifyOnSuccess": "never"}
    }
)

# Delete / archive (irreversible without support)
requests.delete(f"{BASE}/projects/525", params={"api_key": API_KEY})

更新可能なフィールド:scrapingInterval、scheduledAt、outputFormat、apiParams、notificationConfig。

ジョブの管理

# List jobs for a project
jobs = requests.get(
    f"{BASE}/projects/525/jobs",
    params={"api_key": API_KEY}
).json()

# Cancel a running job
requests.delete(
    f"{BASE}/projects/525/jobs/{job_id}",
    params={"api_key": API_KEY}
)
# Running requests within the job finish first; final status becomes "Cancelled"

そのプロジェクトでほかのジョブが実行中の場合、新しいジョブは開始できません。

通知設定

{
  "notificationConfig": {
    "notifyOnSuccess": "with_every_run",
    "notifyOnFailure": "with_every_run"
  }
}

両方のフィールドで指定できるオプション:"never"、"with_every_run"、"daily"、"weekly"。

apiParams リファレンス

標準の ScraperAPI パラメーターはすべて、apiParams 内で使用できます。

パラメーター用途
country_code地域ターゲティング(例:"us"、"gb")
renderJavaScript のレンダリング
premiumプレミアムレジデンシャルプロキシ
ultra_premiumウルトラプレミアムプロキシ(premium とは併用できません)
device_type"desktop" または "mobile"
output_formatLLM パイプライン向けの "text" または "markdown"
autoparse対応サイト向けの構造化 JSON 抽出
keep_headersカスタムヘッダーを転送
follow_redirectリダイレクト処理を制御
wait_for_selectorCSS セレクターが表示されるまで待機(render: true が必要)
screenshotスクリーンショットをキャプチャ(レンダリングを自動的に有効化)
retry_404404 レスポンスを再試行

クレジット料金

DataPipeline では、Standard API と同じクレジット料金が適用されます。料金は、ジョブの実行に含まれるすべてのリクエストの合計です。ダッシュボードからプロジェクトを開始する前に、推定料金を確認できます。

成功した 200 および 404 のレスポンスのみが課金され、失敗したリクエストは課金されません。

制限

制限値
入力項目の上限1 ジョブあたり 100,000 件
直接入力するリスト500 件
データ保持期間30 日間
Free プランの同時接続数5 接続
Free プランのスケジュール設定1 回限りの実行のみ

ドキュメント

コメント