scraping-instagram-posts-by-hashtag について
ハッシュタグに一致する Instagram 投稿を収集し、投稿ごとのメタデータを返すスキルです。キャプション、投稿者、反応のデータセット作成に向けて、Reels の追加や日付の指定ができます。
主な機能
- 01ハッシュタグによる投稿収集
- 02Reels の任意追加
- 03日付の上限指定
- 04取得件数の制限
- 05投稿と反応のメタデータ取得
活用シーン
- 01ハッシュタグ投稿のデータセット作成
- 02投稿ごとのいいね数とコメント数の確認
- 03Reels を含むハッシュタグ投稿の収集
MCP 対応
Apify MCP サーバーが利用可能な場合、Apify Instagram hashtag scraper を実行できます。コマンドラインと REST API の代替手段も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill scraping-instagram-posts-by-hashtagインストール後、Claude Code で/scraping-instagram-posts-by-hashtagを入力して読み込まれたか確認します。
詳細
ハッシュタグでInstagram投稿をスクレイピング
任意のハッシュタグのInstagram投稿データセットです。エンゲージメントや投稿者情報を含む、投稿単位のメタデータを返します。
前提条件
APIFY_TOKEN環境変数が設定されていること- 任意:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | array | 任意 | [] | Instagramのハッシュタグ検索URL |
keyword | string | 任意 | — | 検索するハッシュタグキーワード(例:fitness) |
getReels | boolean | 任意 | false | 結果にリールを含める |
getPosts | boolean | 任意 | true | 結果に通常の投稿を含める |
until | string | 任意 | — | 日付フィルター(YYYY-MM-DD) |
maxItems | number | 任意 | 無制限 | 返す投稿の最大数 |
customMapFunction | string | 任意 | — | 各出力オブジェクトを変換するJavaScript関数 |
ワークフロー
Progress:
- [ ] Step 1: Normalize hashtag input
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver post dataset
ステップ2:Actorを実行する
推奨 — run_actor.js(待機、出力、ファイル保存を自動で処理します):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENは環境変数または.envファイルに設定する必要があります。
Apify MCPが利用できる場合:
Tool: apify:run-actor
Actor: "apidojo~instagram-hashtag-scraper"
Input:
{
"keywords": ["tag1", "tag2"],
"maxItems": 100,
"mediaType": "all"
}
REST APIによる代替手段:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~instagram-hashtag-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["tag1"], "maxItems": 100}'
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:エッジケースに対処する
- 禁止されたハッシュタグ:Instagramでは一部のハッシュタグが非表示になり、結果が0件になります。上位カテゴリを試してください。
- トップ投稿のみが返される:Instagramはハッシュタグフィードを制限しているため、非常に人気のあるタグではトップ投稿のみが返される場合があります。
- 非公開アカウントの投稿:投稿メタデータは表示されますが、メディアURLは制限される場合があります。
出力形式
# Instagram Post Dataset: #<hashtag>
Posts collected: N | Media type: all/image/video
| Post ID | Author | Caption (truncated) | Likes | Comments | Type | Timestamp |
|---------|--------|---------------------|-------|----------|------|-----------|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: id, ownerUsername, caption, likesCount, commentsCount, type,
timestamp, url, mediaUrl, hashtags, mentions
トラブルシューティング
結果が0件: ハッシュタグがInstagramによって禁止または制限されている可能性があります。
レート制限: 1回の実行あたり maxItems を200以下にし、実行の間隔を5分空けてください。
コメント
Markdown 対応