关于 tracking-sports-team-fan-sentiment-twitter
使用 apidojo 抓取器追踪 Twitter 上的球队球迷情绪。它采集匹配的推文、筛选并分类结果,再计算情绪分数。
主要功能
- 01使用自定义查询搜索推文
- 02按作者、日期和互动筛选
- 03分类情绪模式
- 04计算情绪分数
适用场景
- 01监测赛后球迷反应
- 02比较不同球队查询的情绪
- 03按日期或地点查看球迷讨论
MCP 相关
如有 Apify MCP 服务,可通过它运行 Apify tweet-scraper。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill tracking-sports-team-fan-sentiment-twitter安装后在 Claude Code 中输入/tracking-sports-team-fan-sentiment-twitter确认已加载。
详细介绍
追踪体育团队粉丝在 Twitter 上的情绪
使用 apidojo 爬虫追踪体育团队粉丝在 Twitter 上的情绪。属于 apidojo 情报技能库的一部分。
前置条件
- 已设置
APIFY_TOKEN环境变量 - 可选:已安装 Apify MCP 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 备注 |
|---|---|---|---|---|
searchTerms | array | ✅ | [] | Twitter 高级搜索查询(例如 ["#AI lang:en", "from:NASA"]) |
sort | string | 可选 | Top | 排序方式:Latest、Top 或 Latest+Top |
tweetLanguage | string | 可选 | — | ISO 639-1 语言代码(例如 en) |
maxItems | number | 可选 | 不限 | 返回的推文数量上限 |
onlyVerifiedUsers | boolean | 可选 | false | 仅包含已认证用户发布的推文 |
onlyTwitterBlue | boolean | 可选 | false | 仅包含 Twitter Blue 订阅用户发布的推文 |
onlyImage | boolean | 可选 | false | 仅包含带图片的推文 |
onlyVideo | boolean | 可选 | false | 仅包含带视频的推文 |
onlyQuote | boolean | 可选 | false | 仅包含引用推文 |
author | string | 可选 | — | 按特定作者账号筛选 |
inReplyTo | string | 可选 | — | 筛选回复特定账号的推文 |
mentioning | string | 可选 | — | 筛选提及特定账号的推文 |
geotaggedNear | string | 可选 | — | 筛选某个地点附近的推文 |
withinRadius | string | 可选 | — | geotaggedNear 周边的半径 |
geocode | string | 可选 | — | 纬度/经度 + 半径字符串 |
placeObjectId | string | 可选 | — | 筛选标记了地点的推文 |
minimumRetweets | number | 可选 | — | 最低转推数 |
minimumFavorites | number | 可选 | — | 最低点赞数 |
minimumReplies | number | 可选 | — | 最低回复数 |
start | string | 可选 | — | 筛选此日期之后的推文(YYYY-MM-DD) |
end | string | 可选 | — | 筛选此日期之前的推文(YYYY-MM-DD) |
includeSearchTerms | boolean | 可选 | false | 将匹配的搜索词添加到每条推文中 |
customMapFunction | string | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流
Progress:
- [ ] Step 1: Define parameters
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Filter and classify results
- [ ] Step 4: Score by quality and relevance
- [ ] Step 5: Deliver output
第 2 步:运行 Actor
推荐 — run_actor.js(自动处理等待、输出和文件保存):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
必须在环境变量或
.env文件中设置APIFY_TOKEN。
如果 Apify MCP 可用:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": ["[TEAM_NAME]", "#[TeamHashtag]", "[TEAM_NAME] game"],
"maxItems": 100
}
REST API 后备方案:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["[TEAM_NAME]", "#[TeamHashtag]", "[TEAM_NAME] game"], "maxItems": 100}'
等待状态变为 SUCCEEDED。获取数据集:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
第 3 步:对结果进行分类
classification: WIN_BOOST (post-win; sentiment spike > +40%) | LOSS_DROP (post-loss; sentiment drop < -30%) | CONTROVERSY (polarized; > 30% both positive and negative) | BASELINE (normal day)
第 4 步:为每条结果评分
score = fan_sentiment_score = (positive_count - negative_count) / total_count # range -1 to +1
第 5 步:边缘情况
- 体育情绪受赛事结果影响很大——衡量情绪时,务必将球队近期比赛结果作为背景信息
其他后备方案:
- 结果少于 20 条:扩大搜索词范围;移除次要筛选条件
- 没有结果:确认搜索词是否正确;尝试其他表述方式
- 数据质量问题:移除缺少关键字段的条目;在输出中注明数量
输出格式
# Tracking Sports Team Fan Sentiment Twitter
Results: [N] | Date: [DATE]
| # | [Key Field] | [Metric 1] | [Metric 2] | [Classification] | [Score] |
|---|------------|-----------|-----------|-----------------|---------|
| 1 | [value] | [value] | [value] | [type] | [0.XX] |
## Summary
Top result: [description]
Key finding: [insight]
故障排除
结果太少: 扩大主要搜索词范围;移除限制性筛选条件。 结果质量低: 应用最低分数阈值(≥ 0.50)以过滤噪声。 Actor 运行失败: 验证 API 密钥;在 apify.com/apidojo 查看 Actor 状态。
评论
支持 Markdown