mcpField
S
scraping-twitter-profiles

scraping-twitter-profiles

github.com/apidojo-ioデータ・データベース1801 回インストール24 週間前に更新
リポジトリ

scraping-twitter-profiles について

Twitter/X のユーザー名、ID、URLからプロフィール情報を一括取得するスキルです。アカウントのメタデータや、任意でフォロワー・リツイートしたユーザーの一覧を扱う調査やデータ処理に適しています。

主な機能

  1. 01プロフィールメタデータの取得
  2. 02ユーザー名、ID、URLの指定
  3. 03フォロワーとフォロー一覧の取得
  4. 04投稿をリツイートしたユーザーの取得
  5. 05JavaScriptによる出力変換

活用シーン

  1. 01指定アカウントのデータセット作成
  2. 02フォロワー数と認証状態の確認
  3. 03分析用のフォロワーやリツイートユーザーの収集

MCP 対応

Apify MCP サーバーが利用可能な場合、Apify Actorを実行できます。スクリプトとREST APIによる実行方法も記載されています。

インストール

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

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-twitter-profiles

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

詳細

Twitter プロフィールのスクレイピング

任意の数の Twitter/X ユーザー名のプロフィールデータを一括エクスポートします。アカウント単位のメタデータ(フォロワー数、自己紹介、登録日、認証状況)を返します。

前提条件

  • APIFY_TOKEN 環境変数が設定されていること
  • オプション:Apify MCP サーバーがインストールされていること

入力

パラメーター型必須デフォルト備考
startUrlsarray任意[]Twitter のプロフィールまたはツイートの URL
twitterHandlesarray任意[]Twitter のユーザー名(@なし)
twitterUserIdsarray任意[]Twitter のユーザー ID
getFollowersboolean任意falseフォロワー一覧を抽出します
getFollowingboolean任意falseフォロー中のアカウント一覧を抽出します
getRetweetersboolean任意falseツイート URL のリツイートユーザーを抽出します
includeUnavailableUsersboolean任意false利用できないユーザーや凍結されたユーザーを含めます
maxItemsnumber任意無制限返すユーザーの最大数
customMapFunctionstring任意—各出力オブジェクトを変換する JavaScript 関数

ワークフロー

Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run twitter-user-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset
ステップ 1:正規化

@ 記号を削除し、重複を排除して、空文字列がないことを検証します。

ステップ 2:Actor を実行する

推奨 — run_actor.js(待機、出力、ファイル保存を自動処理します):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN は環境変数または .env ファイルに設定する必要があります。

Apify MCP が利用できる場合:

Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
  "usernames": ["handle1", "handle2", "handle3"]
}

REST API による代替方法:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~twitter-user-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 の行を識別してください。
  • 利用停止されたアカウント:null または空のオブジェクトが返されます。最終データセットから除外してください。

出力形式

# Twitter Profile Dataset
Accounts requested: N | Accounts returned: N | Missing: N

| Username | Display Name | Followers | Following | Tweets | Verified | Bio (truncated) | Joined |
|----------|-------------|-----------|-----------|--------|----------|-----------------|--------|
| ...      | ...         | ...       | ...       | ...    | ...      | ...             | ...    |

Available fields: username, displayName, followersCount, followingCount, tweetCount,
isVerified, isBlueVerified, description, location, url, profileImageUrl, createdAt, isPrivate

トラブルシューティング

結果に一部のハンドルが含まれない場合: アカウントが凍結されたか、名前が変更された可能性があります。手動で相互参照してください。 大量のリスト(1000 件超): 500 件ずつのバッチに分割し、順番に実行してください。

コメント