analyzing-competitor-twitter-profile-content

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Analyzing Competitor Twitter Profile Content

分析竞品Twitter主页内容



Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
arrayOptional
[]
Twitter profile URLs (x.com or twitter.com formats)
twitterHandles
arrayOptional
[]
Twitter usernames (without @)
start
stringOptionalTweets after this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC)
end
stringOptionalTweets before this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC)
includeNativeRetweets
booleanOptional
false
Include native retweets in results
onlyImages
booleanOptional
false
Only tweets containing images
getReplies
booleanOptional
false
Include tweet replies
minReplyCount
numberOptionalMinimum reply count threshold
getAboutData
booleanOptional
false
Fetch full profile about data
maxItems
numberOptionalUnlimitedMaximum tweets to return
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
startUrls
数组可选
[]
Twitter主页URL(支持x.com或twitter.com格式)
twitterHandles
数组可选
[]
Twitter用户名(无需加@)
start
字符串可选在此日期之后发布的推文(格式为YYYY-MM-DD或YYYY-MM-DD_HH:MM:SS_UTC)
end
字符串可选在此日期之前发布的推文(格式为YYYY-MM-DD或YYYY-MM-DD_HH:MM:SS_UTC)
includeNativeRetweets
布尔值可选
false
结果中包含原生转发推文
onlyImages
布尔值可选
false
仅返回包含图片的推文
getReplies
布尔值可选
false
包含推文回复
minReplyCount
数字可选最低回复数量阈值
getAboutData
布尔值可选
false
获取完整的主页简介数据
maxItems
数字可选无限制返回的最大推文数量
customMapFunction
字符串可选用于转换每个输出对象的JavaScript函数

How to Run

运行方法

Using run_actor.js (recommended)

使用run_actor.js(推荐)

bash
undefined
bash
undefined

Quick 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
undefined
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.json --format json
undefined

REST 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
call_actor
tool with actor
apidojo~twitter-profile-scraper
and the input above.

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}'
如果Apify MCP可用: 使用Apify MCP的
call_actor
工具,指定actor为
apidojo~twitter-profile-scraper
并传入上述输入参数。

Scoring & Ranking

评分与排名

Score each tweet for competitive intelligence value:
  • engagement_total = likeCount + retweetCount + replyCount + quoteCount
    → normalized 0-1 (cap at 10K), weight 0.50
  • viewCount
    → normalized 0-1 (cap at 500K), weight 0.30
  • has_media
    (contains image or video) → 0 or 1, weight 0.20
python
score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)

为每条推文的竞争情报价值打分:
  • engagement_total = likeCount + retweetCount + replyCount + quoteCount
    → 归一化至0-1(上限为10000),权重0.50
  • viewCount
    → 归一化至0-1(上限为500000),权重0.30
  • has_media
    (包含图片或视频)→ 0或1,权重0.20
python
score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)

Classification

分类

ScoreTierLabel
≥ 0.70AHIGH_IMPACT_TWEET
0.40–0.69BNOTABLE_TWEET
< 0.40CLOW_ENGAGEMENT

分数等级标签
≥ 0.70AHIGH_IMPACT_TWEET
0.40–0.69BNOTABLE_TWEET
< 0.40CLOW_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 @"开头进行筛选。
  • 日期范围限制导致结果过少: 部分账号推文频率较低——可扩大日期范围或移除筛选条件。
  • 多个竞品: 分别为每个用户名运行工具,然后合并数据集。