scraping-twitter-profiles
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseScraping Twitter Profiles
抓取Twitter个人资料
Bulk profile data export for any set of Twitter/X usernames. Returns account-level metadata: follower counts, bios, join dates, verification status.
批量导出任意Twitter/X用户名集合的个人资料数据。返回账号级元数据:粉丝数、简介、注册日期、认证状态。
Prerequisites
前提条件
- environment variable set
APIFY_TOKEN - Optional: Apify MCP server installed
- 设置 环境变量
APIFY_TOKEN - 可选:安装Apify MCP服务器
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | Twitter profile or tweet URLs |
| array | Optional | | Twitter usernames (without @) |
| array | Optional | | Twitter user IDs |
| boolean | Optional | | Extract follower lists |
| boolean | Optional | | Extract following lists |
| boolean | Optional | | Extract retweeters of a tweet URL |
| boolean | Optional | | Include unavailable/suspended users |
| number | Optional | Unlimited | Maximum users to return |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| array | 可选 | | Twitter个人资料或推文URL |
| array | 可选 | | Twitter用户名(不带@) |
| array | 可选 | | Twitter用户ID |
| boolean | 可选 | | 提取粉丝列表 |
| boolean | 可选 | | 提取关注列表 |
| boolean | 可选 | | 提取推文URL的转发者 |
| boolean | 可选 | | 包含不可用/被封禁的用户 |
| number | 可选 | 无限制 | 返回的最大用户数量 |
| string | 可选 | — | 用于转换每个输出对象的JavaScript函数 |
Workflow
工作流程
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run twitter-user-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset进度:
- [ ] 步骤1:标准化用户名列表
- [ ] 步骤2:运行twitter-user-scraper
- [ ] 步骤3:轮询直到状态为SUCCEEDED
- [ ] 步骤4:交付个人资料数据集Step 1: Normalize
步骤1:标准化
Remove symbols, deduplicate, validate no empty strings.
@移除符号,去重,验证无空字符串。
@Step 2: Run the Actor
步骤2:运行Actor
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined推荐方式 — run_actor.js(自动处理等待、输出和文件保存):
bash
undefinedQuick answer (prints table to chat)
快速输出(在聊天中打印表格)
node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
Save as CSV
保存为CSV
node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
Save as JSON
保存为JSON
node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
"usernames": ["handle1", "handle2", "handle3"]
}
**REST API fallback:**
```bash
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"]}'Save as . Poll until :
idRUN_IDstatus = SUCCEEDEDbash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'Fetch results:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"node scripts/run_actor.js
--actor "apidojo~twitter-user-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--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备选方案:**
```bash
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"]}'保存为。轮询直到:
idRUN_IDstatus = SUCCEEDEDbash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'获取结果:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"Step 3: Handle Edge Cases
步骤3:处理边缘情况
- Missing accounts in results: Account suspended, deleted, or handle changed. Note missing handles in output.
- Private accounts: Returns profile metadata but no tweet content — flag rows.
isPrivate: true - Deactivated accounts: Returns null or empty object — exclude from final dataset.
- 结果中缺少部分账号:账号被封禁、删除或用户名已更改。在输出中记录缺失的用户名。
- 私有账号:返回个人资料元数据但无推文内容 — 标记的行。
isPrivate: true - 已停用账号:返回null或空对象 — 从最终数据集中排除。
Output Format
输出格式
undefinedundefinedTwitter Profile Dataset
Twitter个人资料数据集
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
undefined请求的账号数量: N | 返回的账号数量: N | 缺失数量: N
| 用户名 | 显示名称 | 粉丝数 | 关注数 | 推文数 | 已认证 | 简介(截断) | 注册日期 |
|---|---|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... | ... | ... |
可用字段: username, displayName, followersCount, followingCount, tweetCount,
isVerified, isBlueVerified, description, location, url, profileImageUrl, createdAt, isPrivate
undefinedTroubleshooting
故障排除
Some handles missing from results: Accounts may be suspended or renamed — cross-reference manually.
Large lists (> 1000): Break into batches of 500 and run sequentially.
部分用户名未出现在结果中:账号可能已被封禁或重命名 — 手动交叉验证。
大型列表(>1000个):拆分为500个一组,依次运行。