scraping-tiktok-profile-data
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseScraping TikTok Profile Data
抓取TikTok主页数据
Bulk account-level statistics for any set of TikTok usernames. Returns follower counts, engagement totals, bio, and video count.
批量获取任意TikTok用户名的账号级统计数据。返回内容包括粉丝数、互动总量、个人简介及视频数量。
Prerequisites
前提条件
- environment variable set
APIFY_TOKEN - Optional: Apify MCP server installed
- 已设置环境变量
APIFY_TOKEN - 可选:已安装Apify MCP服务器
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | TikTok profile URLs |
| array | Optional | | TikTok usernames (without @) |
| string | Optional | — | Return posts after this date (YYYY-MM-DD) |
| string | Optional | — | Return posts before this date (YYYY-MM-DD) |
| number | Optional | Unlimited | Maximum posts to return |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数组 | 可选 | | TikTok主页URL |
| 数组 | 可选 | | TikTok用户名(不含@) |
| 字符串 | 可选 | — | 返回该日期之后的帖子(格式:YYYY-MM-DD) |
| 字符串 | 可选 | — | 返回该日期之前的帖子(格式:YYYY-MM-DD) |
| 数字 | 可选 | 无限制 | 返回的最大帖子数量 |
| 字符串 | 可选 | — | 用于转换每个输出对象的JavaScript函数 |
Workflow
工作流程
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run tiktok-profile-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile datasetProgress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run tiktok-profile-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile datasetStep 2: Run the Actor
Step 2: Run the Actor
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined推荐方式 — run_actor.js(自动处理等待、输出及文件保存):
bash
undefinedQuick answer (prints table to chat)
Quick answer (prints table to chat)
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
Save as CSV
Save as CSV
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
Save as JSON
Save as JSON
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~tiktok-profile-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~tiktok-profile-scraper"
Input:
{
"usernames": ["creator1", "creator2"]
}
**REST API fallback:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["creator1", "creator2"]}'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~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.
**若Apify MCP可用:**Tool: apify:run-actor
Actor: "apidojo~tiktok-profile-scraper"
Input:
{
"usernames": ["creator1", "creator2"]
}
**REST API备选方案:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["creator1", "creator2"]}'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"Step 3: Handle Edge Cases
步骤3:处理边缘情况
- Account not found: Username banned, deleted, or changed. Flag in output.
- Private account: Returns 0 video count with profile metadata — mark .
isPrivate: true - Batch > 500: Split into smaller batches for reliability.
- 账号未找到:用户名已被封禁、删除或更改。在输出中标记。
- 私密账号:返回0视频数量及主页元数据 — 标记。
isPrivate: true - 批量数量>500:拆分为更小的批次以保证可靠性。
Output Format
输出格式
undefinedundefinedTikTok Profile Dataset
TikTok Profile Dataset
Accounts requested: N | Returned: N | Not found: N
| Username | Followers | Following | Total Likes | Videos | Bio (truncated) | Verified |
|---|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: username, nickname, followerCount, followingCount, heartCount,
videoCount, signature, verified, bioLink, avatarUrl
undefinedAccounts requested: N | Returned: N | Not found: N
| Username | Followers | Following | Total Likes | Videos | Bio (truncated) | Verified |
|---|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: username, nickname, followerCount, followingCount, heartCount,
videoCount, signature, verified, bioLink, avatarUrl
undefinedTroubleshooting
故障排除
Missing accounts: Username may have changed — verify on TikTok directly.
Stale follower counts: TikTok data may lag 24–48 hours; re-run for fresh data.
账号缺失:用户名可能已更改 — 直接在TikTok上验证。
粉丝数过时:TikTok数据可能存在24–48小时的延迟;重新运行以获取最新数据。