用途
Scraping Twitter Profiles 是一个批量导出 Twitter/X 用户主页数据的技能,适合一次性获取任意一组用户名对应的账号级别元数据,例如粉丝数、关注数、简介、加入日期和认证状态。它由 apidojo 提供的 Twitter User scraper 驱动,运行在 Apify 平台上,Actor 标识为 apidojo~twitter-user-scraper。
主要能力
该技能返回账号级别的元数据,可用的输出字段包括:username、displayName、followersCount、followingCount、tweetCount、isVerified、isBlueVerified、description、location、url、profileImageUrl、createdAt、isPrivate。除基础资料外,它还支持通过开关参数提取粉丝列表(getFollowers)、关注列表(getFollowing)以及某条推文的转推者(getRetweeters),可选择是否包含不可用或已停用的用户(includeUnavailableUsers),并可通过 maxItems 限制返回的用户数量,或使用 customMapFunction 对每个输出对象进行转换。
输入参数
参数包括:startUrls(数组,可选,默认 [],Twitter 主页或推文 URL)、twitterHandles(数组,可选,默认 [],Twitter 用户名,不含 @)、twitterUserIds(数组,可选,默认 [],Twitter 用户 ID)、getFollowers(布尔,可选,默认 false,提取粉丝列表)、getFollowing(布尔,可选,默认 false,提取关注列表)、getRetweeters(布尔,可选,默认 false,提取某推文 URL 的转推者)、includeUnavailableUsers(布尔,可选,默认 false,包含不可用/被停用用户)、maxItems(数字,可选,默认无限制,返回用户数的上限)、customMapFunction(字符串,可选,用于转换每个输出对象的 JavaScript 函数)。
使用方式
先决条件:设置 APIFY_TOKEN 环境变量;可选安装 Apify MCP server。工作流分为四步:第一步将用户名列表规范化(去掉 @ 符号、去重、校验不含空字符串);第二步运行 Actor;第三步轮询直至状态为 SUCCEEDED;第四步输出资料数据集。
推荐使用 run_actor.js 运行,它会自动处理等待、输出和文件保存。快速回答(在聊天中打印表格):
node scripts/run_actor.js --actor "apidojo~twitter-user-scraper" --input '{"param": "value"}'
保存为 CSV:
node scripts/run_actor.js --actor "apidojo~twitter-user-scraper" --input '{"param": "value"}' --output YYYY-MM-DD_results.csv --format csv
保存为 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 可用,可通过工具 apify:run-actor 调用,Actor 为 "apidojo~twitter-user-scraper",输入为 {"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"
输出格式
输出以 Twitter Profile Dataset 形式呈现,顶部显示请求账号数、返回账号数、缺失账号数,随后为表格,列出用户名、显示名称、粉丝数、关注数、推文数、是否认证、简介(截断)、加入时间等列。
边界情况处理
结果中缺失账号:可能因账号被停用、删除或用户名变更导致,需在输出中标注缺失的用户名。私密账号:返回资料元数据但不含推文内容,需标记 isPrivate: true 的行。已停用账号:返回 null 或空对象,应从最终数据集中排除。
限制与排查
若部分用户名未出现在结果中,账号可能已被停用或改名,需要人工交叉核对。对于超过 1000 个用户名的大列表,建议拆分为每批 500 个依次运行。