关于 scraping-twitter-profiles
用于批量导出 Twitter/X 账号资料的技能,支持用户名、用户 ID 或链接。适合需要账号元数据,以及可选粉丝或转推者列表的研究和数据工作流。
主要功能
- 01导出账号资料元数据
- 02接受用户名、用户 ID 和链接
- 03获取粉丝与关注列表
- 04获取推文转推者
- 05使用 JavaScript 转换输出
适用场景
- 01构建指定账号的数据集
- 02查看粉丝数和认证状态
- 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