mcpField
S
scraping-twitter-profiles

scraping-twitter-profiles

github.com/apidojo-io数据与数据库1801 次安装24 周前更新
代码仓库

关于 scraping-twitter-profiles

用于批量导出 Twitter/X 账号资料的技能,支持用户名、用户 ID 或链接。适合需要账号元数据,以及可选粉丝或转推者列表的研究和数据工作流。

主要功能

  1. 01导出账号资料元数据
  2. 02接受用户名、用户 ID 和链接
  3. 03获取粉丝与关注列表
  4. 04获取推文转推者
  5. 05使用 JavaScript 转换输出

适用场景

  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 服务

输入

参数类型必填默认值说明
startUrls数组可选[]Twitter 个人资料或推文 URL
twitterHandles数组可选[]Twitter 用户名(不带 @)
twitterUserIds数组可选[]Twitter 用户 ID
getFollowers布尔值可选false提取粉丝列表
getFollowing布尔值可选false提取关注列表
getRetweeters布尔值可选false提取推文 URL 的转推者
includeUnavailableUsers布尔值可选false包含无法访问或已暂停的用户
maxItems数字可选不限返回的用户数上限
customMapFunction字符串可选—用于转换每个输出对象的 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

必须在环境或 .env 文件中设置 APIFY_TOKEN。

如果 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 个,并按顺序运行。

评论

支持 Markdown