scraping-instagram-profile-data について
Instagramアカウントの統計を一括エクスポートし、最近の投稿も任意で取得するデータ収集スキルです。プロフィール一覧から構造化データを作りたいユーザー向けです。
主な機能
- 01Instagram URLからプロフィールを取得
- 02アカウント単位の統計を収集
- 03最近の投稿を任意で取得
- 04非公開・取得不能なアカウントへの対応
- 05プロフィールデータセットの出力
活用シーン
- 01ユーザー名一覧からデータセットを作成
- 02複数アカウントのフォロワー数や投稿数を確認
- 03エンゲージメント分析用の投稿データを取得
MCP 対応
Apify MCP サーバーを使ってInstagramスクレイパー Actor を実行できます。コマンドラインと REST API の代替手段も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill scraping-instagram-profile-dataインストール後、Claude Code で/scraping-instagram-profile-dataを入力して読み込まれたか確認します。
詳細
Instagram プロフィールデータのスクレイピング
任意の Instagram ユーザー名セットのプロフィールを一括エクスポートします。アカウントレベルの統計情報と、オプションで最近の投稿データを返します。
前提条件
APIFY_TOKEN環境変数が設定されていること- オプション:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | array | ✅ | [] | Instagram の URL — プロフィール、ハッシュタグ、位置情報、音声ページ、リール |
until | string | オプション | — | この日付まで投稿をスクレイピングします(YYYY-MM-DD) |
maxItems | number | オプション | 無制限 | 返す投稿の最大数 |
customMapFunction | string | オプション | — | 各出力オブジェクトを変換する JavaScript 関数 |
ワークフロー
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset
ステップ 2:アクターを実行する
推奨 — run_actor.js(待機、出力、ファイル保存を自動で処理します):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENは環境変数または.envファイルに設定する必要があります。
Apify MCP が利用可能な場合:
Tool: apify:run-actor
Actor: "apidojo~instagram-scraper"
Input:
{
"usernames": ["handle1", "handle2"],
"includeRecentPosts": false
}
REST API の代替手段:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["handle1", "handle2"]}'
id を RUN_ID として保存します。status = SUCCEEDED になるまでポーリングします:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
結果を取得します:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
ステップ 3:エッジケースに対応する
- 非公開アカウント:プロフィールの統計情報は返されますが、投稿は返されません —
isPrivate: trueとして記録します。 - アカウントが見つからない:ハンドル名が変更されたか、アカウントが停止された可能性があります — 出力に記載します。
- ビジネスアカウントと個人アカウント:ビジネスアカウントでは連絡先情報が公開されますが、個人アカウントでは公開されません。
出力形式
# Instagram Profile Dataset
Accounts requested: N | Returned: N | Private: N | Not found: N
| Username | Followers | Following | Posts | Bio (truncated) | Business | Verified |
|----------|-----------|-----------|-------|-----------------|----------|----------|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: username, fullName, followersCount, followingCount, postsCount,
biography, isVerified, isBusinessAccount, businessCategory, externalUrl, profilePicUrl
トラブルシューティング
アカウントが見つからない場合: リストの作成後にユーザー名が変更されたか、アカウントが停止されています。
エンゲージメントデータがない場合: エンゲージメントは投稿ごとのデータです。投稿レベルのデータを取得するには、includeRecentPosts: true を使用してください。
コメント
Markdown 対応