scraperapi-datapipeline について
ScraperAPI DataPipelineは、プロキシやリトライ、インフラを管理せずに定期的または大規模なデータ収集を行いたいチーム向けのマネージドサービスです。プロジェクトをスケジュール実行し、結果をWebhookで配信するか、ダッシュボードから取得できます。
主な機能
- 01対応するスクレイピング種別のプロジェクト設定
- 02定期実行または単発実行のスケジュール
- 03リスト、CSVファイル、Webhookによる入力
- 04Webhookまたはダッシュボードへの結果配信
- 05ジョブ完了時のメール通知設定
活用シーン
- 01固定スケジュールでデータを収集する
- 02大規模な入力リストをマネージドジョブで処理する
- 03完了した結果をアプリケーションへ自動送信する
- 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_js | JavaScript レンダリングを使用する場合。同上 |
google_search | 検索クエリ |
google_news | 検索クエリ |
google_jobs | 検索クエリ |
google_shopping | 検索クエリ |
google_maps | 検索クエリ |
amazon_product | ASIN |
amazon_search | 検索クエリ |
amazon_offers | ASIN |
walmart_product | 商品 ID |
walmart_search | 検索クエリ |
walmart_category | カテゴリ ID |
walmart_reviews | 商品 ID |
ebay_product | 12 桁の商品 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") |
render | JavaScript のレンダリング |
premium | プレミアムレジデンシャルプロキシ |
ultra_premium | ウルトラプレミアムプロキシ(premium とは併用できません) |
device_type | "desktop" または "mobile" |
output_format | LLM パイプライン向けの "text" または "markdown" |
autoparse | 対応サイト向けの構造化 JSON 抽出 |
keep_headers | カスタムヘッダーを転送 |
follow_redirect | リダイレクト処理を制御 |
wait_for_selector | CSS セレクターが表示されるまで待機(render: true が必要) |
screenshot | スクリーンショットをキャプチャ(レンダリングを自動的に有効化) |
retry_404 | 404 レスポンスを再試行 |
クレジット料金
DataPipeline では、Standard API と同じクレジット料金が適用されます。料金は、ジョブの実行に含まれるすべてのリクエストの合計です。ダッシュボードからプロジェクトを開始する前に、推定料金を確認できます。
成功した 200 および 404 のレスポンスのみが課金され、失敗したリクエストは課金されません。
制限
| 制限 | 値 |
|---|---|
| 入力項目の上限 | 1 ジョブあたり 100,000 件 |
| 直接入力するリスト | 500 件 |
| データ保持期間 | 30 日間 |
| Free プランの同時接続数 | 5 接続 |
| Free プランのスケジュール設定 | 1 回限りの実行のみ |