mcpField
S
scraping-tweets-from-account

scraping-tweets-from-account

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

scraping-tweets-from-account について

Twitter/X の公開アカウントから、返信やメディアを含むツイート履歴を収集するデータ向けスキルです。Apify の tweet-scraper を使い、アカウントや日付などでデータを絞り込めます。

主な機能

  1. 01公開アカウントのツイート収集
  2. 02返信とメディアの取得
  3. 03日付や反応数での絞り込み
  4. 04データセットとしての出力

活用シーン

  1. 01アカウントのツイート履歴の確認
  2. 02投稿とあわせた返信・メディアの分析
  3. 03指定期間内のツイート収集

MCP 対応

Apify MCP サーバーが利用可能な場合、Apify tweet-scraper を実行できます。

インストール

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

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-tweets-from-account

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

詳細

アカウントのツイートをスクレイピングする

公開されている任意の Twitter/X アカウントの全ツイート履歴をエクスポートします。返信とメディアを含むタイムラインの生データセットを返します。

前提条件

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

入力

パラメーター型必須デフォルト備考
searchTermsarray✅[]Twitter の高度な検索クエリ(例:["#AI lang:en", "from:NASA"])
sortstring任意Top並べ替え順:Latest、Top、または Latest+Top
tweetLanguagestring任意—ISO 639-1 言語コード(例:en)
maxItemsnumber任意無制限返すツイートの最大数
onlyVerifiedUsersboolean任意false認証済みユーザーのツイートのみ
onlyTwitterBlueboolean任意falseTwitter Blue 登録者のツイートのみ
onlyImageboolean任意false画像付きツイートのみ
onlyVideoboolean任意false動画付きツイートのみ
onlyQuoteboolean任意false引用ツイートのみ
authorstring任意—特定の投稿者ハンドルに絞り込む
inReplyTostring任意—特定のハンドルへの返信ツイート
mentioningstring任意—特定のハンドルに言及するツイート
geotaggedNearstring任意—指定した場所の近くのツイート
withinRadiusstring任意—geotaggedNear の周囲の半径
geocodestring任意—緯度・経度と半径を指定する文字列
placeObjectIdstring任意—場所がタグ付けされたツイート
minimumRetweetsnumber任意—リツイート数の最小値
minimumFavoritesnumber任意—いいね数の最小値
minimumRepliesnumber任意—返信数の最小値
startstring任意—この日付より後のツイート(YYYY-MM-DD)
endstring任意—この日付より前のツイート(YYYY-MM-DD)
includeSearchTermsboolean任意false一致した検索語を各ツイートに追加する
customMapFunctionstring任意—各出力オブジェクトを変換する JavaScript 関数

ワークフロー

Progress:
- [ ] Step 1: Confirm account is public
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Fetch and deliver dataset
ステップ 1:入力を検証する

ユーザー名に @ が含まれている場合は取り除きます。非公開アカウントのスクレイピングは試みないでください。アクターは 0 件の結果を返します。

ステップ 2:アクターを実行する

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

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

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

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

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

Apify MCP を利用できる場合:

Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
  "twitterHandles": ["<handle>"],
  "maxItems": 200,
  "sort": "Latest"
}

REST API の代替手段:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"twitterHandles": ["<handle>"], "maxItems": 200, "sort": "Latest"}'

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:エッジケースに対応する
  • 結果が 0 件:アカウントが非公開、停止中、またはハンドルのスペルが間違っている可能性があります。ユーザーに報告します。
  • 予想より結果が少ない:アカウントの公開ツイート数が要求数より少ない可能性があります。取得できた分を返します。
  • 非公開アカウント:アクターは空の結果を返します。アカウントが非公開であることをユーザーに伝えます。

出力形式

# Tweet Timeline: @<username>
Tweets collected: N | Includes replies: YES/NO | Includes retweets: YES/NO

| Tweet ID | Text (truncated) | Likes | Retweets | Replies | Media | Timestamp |
|----------|-----------------|-------|----------|---------|-------|-----------|
| ...      | ...             | ...   | ...      | ...     | ...   | ...       |

Full dataset: N rows × 12 fields
Available fields: id, text, likeCount, retweetCount, replyCount, quoteCount,
isReply, isRetweet, media, tweetUrl, lang, createdAt

トラブルシューティング

公開アカウントが確認済みなのに結果が 0 件の場合: もう一度試してください。Twitter によるレート制限が一時的に発生している可能性があります。 古いツイートが見つからない場合: Twitter API では履歴へのアクセスに制限があり、非常に古いツイートは取得できない場合があります。 タイムアウト: maxItems を 1 回の実行あたり最大 500 件に減らしてください。

コメント