analyzing-competitor-twitter-profile-content
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAnalyzing Competitor Twitter Profile Content
分析竞品Twitter主页内容
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | Twitter profile URLs (x.com or twitter.com formats) |
| array | Optional | | Twitter usernames (without @) |
| string | Optional | — | Tweets after this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC) |
| string | Optional | — | Tweets before this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC) |
| boolean | Optional | | Include native retweets in results |
| boolean | Optional | | Only tweets containing images |
| boolean | Optional | | Include tweet replies |
| number | Optional | — | Minimum reply count threshold |
| boolean | Optional | | Fetch full profile about data |
| number | Optional | Unlimited | Maximum tweets to return |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数组 | 可选 | | Twitter主页URL(支持x.com或twitter.com格式) |
| 数组 | 可选 | | Twitter用户名(无需加@) |
| 字符串 | 可选 | — | 在此日期之后发布的推文(格式为YYYY-MM-DD或YYYY-MM-DD_HH:MM:SS_UTC) |
| 字符串 | 可选 | — | 在此日期之前发布的推文(格式为YYYY-MM-DD或YYYY-MM-DD_HH:MM:SS_UTC) |
| 布尔值 | 可选 | | 结果中包含原生转发推文 |
| 布尔值 | 可选 | | 仅返回包含图片的推文 |
| 布尔值 | 可选 | | 包含推文回复 |
| 数字 | 可选 | — | 最低回复数量阈值 |
| 布尔值 | 可选 | | 获取完整的主页简介数据 |
| 数字 | 可选 | 无限制 | 返回的最大推文数量 |
| 字符串 | 可选 | — | 用于转换每个输出对象的JavaScript函数 |
How to Run
运行方法
Using run_actor.js (recommended)
使用run_actor.js(推荐)
bash
undefinedbash
undefinedQuick answer (table)
快速获取结果(表格形式)
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'
Save as CSV
保存为CSV格式
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.csv --format csv
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.csv --format csv
Save as JSON
保存为JSON格式
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.json --format json
undefinednode scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.json --format json
undefinedREST API fallback
REST API备选方案
bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~twitter-profile-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'If Apify MCP is available:
Use the Apify MCP tool with actor and the input above.
call_actorapidojo~twitter-profile-scraperbash
curl -X POST "https://api.apify.com/v2/acts/apidojo~twitter-profile-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'如果Apify MCP可用:
使用Apify MCP的工具,指定actor为并传入上述输入参数。
call_actorapidojo~twitter-profile-scraperScoring & Ranking
评分与排名
Score each tweet for competitive intelligence value:
- → normalized 0-1 (cap at 10K), weight 0.50
engagement_total = likeCount + retweetCount + replyCount + quoteCount - → normalized 0-1 (cap at 500K), weight 0.30
viewCount - (contains image or video) → 0 or 1, weight 0.20
has_media
python
score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)为每条推文的竞争情报价值打分:
- → 归一化至0-1(上限为10000),权重0.50
engagement_total = likeCount + retweetCount + replyCount + quoteCount - → 归一化至0-1(上限为500000),权重0.30
viewCount - (包含图片或视频)→ 0或1,权重0.20
has_media
python
score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)Classification
分类
| Score | Tier | Label |
|---|---|---|
| ≥ 0.70 | A | HIGH_IMPACT_TWEET |
| 0.40–0.69 | B | NOTABLE_TWEET |
| < 0.40 | C | LOW_ENGAGEMENT |
| 分数 | 等级 | 标签 |
|---|---|---|
| ≥ 0.70 | A | HIGH_IMPACT_TWEET |
| 0.40–0.69 | B | NOTABLE_TWEET |
| < 0.40 | C | LOW_ENGAGEMENT |
Edge Cases
边缘情况
- Private account: Returns 0 tweets. Check if competitor locked their account.
- Minimum 40 tweets: First 40 are included at base pricing. For more, cost is $0.0004/tweet.
- Retweets included: Results include RTs. Filter by checking if text starts with "RT @".
- Date range + few results: Some accounts tweet rarely — widen date range or remove filter.
- Multiple competitors: Run for each handle separately and combine datasets.
- 私有账号: 返回0条推文。需检查竞品是否锁定了账号。
- 最低40条推文: 基础定价包含前40条推文。超出部分每条收费0.0004美元。
- 包含转发推文: 结果中包含RT内容。可通过检查文本是否以"RT @"开头进行筛选。
- 日期范围限制导致结果过少: 部分账号推文频率较低——可扩大日期范围或移除筛选条件。
- 多个竞品: 分别为每个用户名运行工具,然后合并数据集。