trending-hub

帮你把抖音、微博、B站、快手、知乎、头条、百度等7个平台的热搜聚合在一起,省得一个个平台去看。想知道今天全网都在聊什么、哪个热点值得追、趋势怎么走,问我准没错。查热榜、导报告、订阅推送都行

Skill file

Preview skill file
---
name: trending-hub
description: 帮你把抖音、微博、B站、快手、知乎、头条、百度等7个平台的热搜聚合在一起,省得一个个平台去看。想知道今天全网都在聊什么、哪个热点值得追、趋势怎么走,问我准没错。查热榜、导报告、订阅推送都行
dependency:
  python:
    - 无第三方依赖(使用标准库 urllib.request)
---

# 全网热点追踪

## 1. 简介

**一句话定位**:全网热点聚合追踪工具,实时抓取抖音、微博、B站、快手、知乎、头条、百度等7大平台热搜数据,一站式查看全网热点。

**核心价值**:解决内容创作者、市场运营者在热点追踪中的三大痛点:
- **热点分散难整合**:无需逐个平台查看,一次聚合7大平台热榜
- **跨平台对比困难**:自动识别同一事件在不同平台的讨论差异和热度表现
- **趋势判断模糊**:基于热度值、上榜时长、平台覆盖等维度智能预测热点走势

**适用对象**:内容创作者、市场运营人员、媒体编辑、品牌策划、热点追踪爱好者。

**不支持**:该技能不支持查询特定热词详情,仅提供全网热点榜聚合查询。

## 2. 功能特性

### 核心功能

| 功能模块 | 能力描述 | 核心价值 |
|----------|----------|----------|
| 🔍 全网热榜聚合 | 实时抓取7大平台热搜数据 | 一键获取全网热点,告别逐平台查看 |
| 🔗 跨平台事件识别 | 智能识别同一事件在不同平台的表述 | 自动归并相似话题,避免重复统计 |
| 📊 热度趋势预测 | 基于热度值、时长、平台覆盖预测走势 | 提前判断热点生命周期,把握创作窗口 |
| 📈 TOP10榜单提供 | 按综合热度排序输出TOP10热点 | 快速定位高价值选题 |
| 💬 跨平台讨论分析 | 展示不同平台的讨论焦点和差异 | 深度洞察舆论生态,精准定位受众 |
| ⏰ 订阅推送服务 | 定时推送最新热榜/昨日热榜 | 持续追踪热点动态,不错过关键机会 |

### 特色亮点

- **小时级更新**:数据每小时更新,保持实时性
- **智能关键词泛化**:输入"体育"自动扩展为10个相关关键词
- **按平台分类输出**:百度、知乎、微博、抖音、B站、快手、头条依次展示
- **完整榜单查看**:每个平台最多支持查看完整50条数据
- **动态智能输出**:无数据平台自动跳过,数据不足自动调整展示数量

## 3. 一键安装

### 鉴权

#### 获取 API Key

请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取API KEY

#### 配置 API Key

方案1: 以OpenClaw为例,将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中,部分内容如下:

```bash
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```

方案2: 终端配置:

```bash
export REDFOX_API_KEY="ak_xxxx..."
```

### 依赖安装

```bash
pip install python-dateutil
```

### 环境变量配置

| 变量名 | 说明 | 必填 |
|--------|------|------|
| `REDFOX_API_KEY` | 红狐 API Key | 是 |

## 4. 使用指南

### 基础使用

#### 查询最新热榜(默认)

```bash
python scripts/fetch_hotspot.py --source "全平台热点事件"
```

数据为小时级更新,自动查询前一个完整小时。例如:当前时间为 `2026-04-16 17:42:00`,则查询 `2026-04-16 16:00:00` 到 `2026-04-16 17:00:00` 的数据。

#### 查询历史热榜

```bash
# 查询昨日热榜(假设今天是2026-04-16)
python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "2026-04-15 00:00:00" --end-date "2026-04-16 00:00:00"
```

**日期范围规则**:
- 时间格式为 `YYYY-MM-DD HH:MM:SS`,也可简写为 `YYYY-MM-DD`(自动补全为 00:00:00)
- 日期范围是 `[start_date, end_date)` 左闭右开区间
- 例如:`--start-date "2026-04-01 00:00:00" --end-date "2026-04-02 00:00:00"` 查询的是4月1日当天的数据
- 最长查询范围:**30天**

### 高级使用

#### 筛选特定平台

```bash
python scripts/fetch_hotspot.py --source "全平台热点事件" --platforms "wb,dy,bz"
```

平台代码映射:

| 平台代码 | 平台名称 | 接口枚举值 |
|---------|---------|-----------|
| bd | 百度 | 7 |
| zh | 知乎 | 9 |
| wb | 微博 | 5 |
| dy | 抖音 | 2 |
| bz | B站 | 8 |
| ks | 快手 | 1 |
| tt | 头条 | 10 |

#### 关键词搜索与泛化

```bash
# 关键词筛选
python scripts/fetch_hotspot.py --source "全平台热点事件" --keywords "体育,足球"

# 关键词泛化扩展
python scripts/fetch_hotspot.py --source "全平台热点事件" --keywords "体育" --expand-keywords
```

**关键词泛化策略**:
- 大词(如"体育"、"娱乐"、"科技"):自动扩展为10个泛化词
  - 例:"体育" -> ["体育", "足球", "篮球", "运动", "健身", "奥运", "世界杯", "NBA", "CBA", "乒乓球"]
- 精确词(如"苏超"、"某明星名字"):直接传入原词,不进行扩展
- 支持泛化的大类:体育、娱乐、科技、财经、社会、游戏、汽车、美食、旅游、时尚等

#### 查看完整榜单

当用户回复「查看{平台名}完整榜单」时:

```bash
python scripts/fetch_hotspot.py --source "全平台热点事件" --platforms wb --output markdown
```

### 智能体时间判断逻辑

根据用户意图自动选择查询方式(假设今天日期为T):

| 用户意图 | 查询方式 | 脚本参数 |
|----------|----------|----------|
| "今日热点" / "今日热榜" | 查询今日0:00到当前整点 | `--start-date "T 00:00:00" --end-date "T {当前小时}:00:00"` |
| "最新热榜" / "热点榜" | 查询前一个完整小时 | 无需指定时间参数 |
| "昨日热榜" / "昨天热榜" | 查询昨日0:00到24:00 | `--start-date "T-1 00:00:00" --end-date "T 00:00:00"` |
| "本周热榜" / "这周热榜" | 查询本周一0:00到当前整点 | `--start-date "{本周一日期} 00:00:00" --end-date "T {当前小时}:00:00"` |

**本周一时间计算规则**:
- 计算公式:本周一 = 今天日期 - (今天星期几 - 1) 天
- 示例:今天是2026-05-09(周六),本周一 = 2026-05-04

**对比查询场景**:当用户需要对比多天数据时,需分别查询多天的热榜:

```bash
# 对比昨天和今天的热榜(假设今天是2026-04-16)
python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "2026-04-15 00:00:00" --end-date "2026-04-16 00:00:00"  # 昨日
python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "2026-04-16 00:00:00" --end-date "2026-04-17 00:00:00"  # 今日实时
```

### 输出格式说明

**compact模式(默认)**:输出极简结构化数据(元信息+平台TOP3概览),末尾附带完整数据文件路径 `dataFile: {path}`。智能体应使用compact模式获取数据,从 `dataFile` 路径读取完整JSON数据。只允许调用1次接口。

**输出格式模板**:按平台分类输出,每个平台展示TOP10热点。智能输出规则:
- 如果某平台没有热点数据,则不展示该平台
- 如果某平台数据少于10条,则展示实际数量
- 数据>10条时显示"该平台还有{N}条数据未展示"
- 平台顺序:百度 → 知乎 → 微博 → 抖音 → B站 → 快手 → 头条

输出格式模板详见 [references/output-templates.md](references/output-templates.md)。

### 热度值处理

- 如果热度值已包含单位(如"万"、"亿"),直接使用原始值
- 如果热度值为纯数字,转换为"数字+万"格式(`hotCount // 10000` 整数除法)
  - 示例:百度热度 `7904508` → `790万`
- 热度值格式必须为"数字+万",禁止包含其他字符

### 订阅推送服务

- **每日推送**:每天定时推送最新热榜(如早8点、晚8点)
- **每周推送**:每周定时推送热门汇总(如周一早上)
- 推送格式:精简版TOP10表格 + 小总结(各平台TOP3 + 全网热点小总结)

### 命令速查表

| 场景 | 命令 |
|------|------|
| 最新热榜 | `python scripts/fetch_hotspot.py --source "全平台热点事件"` |
| 今日热榜 | `python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "T 00:00:00" --end-date "T HH:00:00"` |
| 昨日热榜 | `python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "T-1 00:00:00" --end-date "T 00:00:00"` |
| 指定平台 | `python scripts/fetch_hotspot.py --platforms "wb,dy"` |
| 关键词筛选 | `python scripts/fetch_hotspot.py --keywords "体育,足球"` |
| 关键词泛化 | `python scripts/fetch_hotspot.py --keywords "体育" --expand-keywords` |

### 数据结构说明

```json
{
  "status": "success",
  "stat_time": "2026-05-08 07:35:15",
  "total_count": 330,
  "hotspots": [
    {
      "title": "热点标题",
      "url": "https://...",
      "hotCount": 7904508,
      "index": 1,
      "gmtCreate": "2026-05-08 06:00:14",
      "platCode": "bd",
      "platName": "百度"
    }
  ],
  "query_range": {
    "type": "realtime",
    "start_date": "2026-05-08 06:00:00",
    "end_date": "2026-05-08 07:00:00"
  }
}
```

| 字段 | 说明 |
|------|------|
| hotspots | 热点列表,包含所有平台的热点数据 |
| title | 热点标题(已处理空格) |
| url | 热点链接(空格已转为%20) |
| hotCount | 热度值(纯数字,已移除"万热度"等字符) |
| index | 平台内排名 |
| gmtCreate | 创建时间 |
| platCode | 平台代码:bd/bz/dy/ks/tt/wb/zh |
| platName | 平台名称:百度/B站/抖音/快手/头条/微博/知乎 |

## 5. 使用场景

### 场景一:内容创作者追热点

**角色**:自媒体创作者
**需求**:每天早晨快速了解全网热点,确定当日选题方向
**使用方式**:输入"今日热点",获取7大平台实时热榜TOP10
**预期收益**:5分钟内掌握全网热点动态,精准定位高价值选题

### 场景二:市场运营竞品分析

**角色**:品牌市场运营
**需求**:对比同一事件在不同平台的讨论差异,了解舆论生态
**使用方式**:查询指定关键词热点,观察跨平台讨论焦点
**预期收益**:深度洞察不同平台用户讨论差异,制定差异化运营策略

### 场景三:PR危机监测

**角色**:公关经理
**需求**:实时监测特定品牌或事件在多平台的热度变化
**使用方式**:通过关键词筛选 + 订阅推送,持续追踪相关热点
**预期收益**:第一时间发现舆情信号,抢占危机应对窗口

### 场景四:热点趋势研究

**角色**:数据分析师
**需求**:对比多天热点数据,分析热点演变趋势
**使用方式**:使用对比查询分别查询多天数据,分析热度变化
**预期收益**:基于数据判断热点生命周期,输出趋势分析报告

## 6. 项目架构

### 目录结构

```
trending-hub/
├── SKILL.md                     # 技能描述文件
├── scripts/
│   └── fetch_hotspot.py         # 热点数据获取脚本
└── references/
    └── output-templates.md      # 输出格式模板参考
```

### 技术栈

| 组件 | 技术 | 说明 |
|------|------|------|
| 脚本语言 | Python 3 | 使用标准库 urllib.request |
| 外部依赖 | python-dateutil | 日期处理 |
| 数据接口 | Redfox API | 多平台热点数据聚合 |
| 输出格式 | JSON / Markdown | 结构化和可视化输出 |

### 核心模块说明

| 模块 | 功能 |
|------|------|
| `fetch_hotspot.py` | 从API获取多平台热点数据,支持平台筛选、关键词搜索、时间范围查询、关键词泛化 |
| `output-templates.md` | 定义对话输出格式模板,规范各平台TOP10表格和小结格式 |

### 资源索引

- 脚本: 见 [scripts/fetch_hotspot.py](scripts/fetch_hotspot.py)(用途与参数:从API获取热点数据,支持平台筛选)
- 参考: 见 [references/output-templates.md](references/output-templates.md)(何时读取:对话输出时参考格式模板)

## 7. 常见问答

### 安装相关

**Q: 脚本运行报错 "ModuleNotFoundError: No module named 'dateutil'"**
A: 请安装依赖:`pip install python-dateutil`

**Q: 提示 "REDFOX_API_KEY not found"**
A: 请确保已配置环境变量 `REDFOX_API_KEY`,可参考上方鉴权章节配置。

### 使用相关

**Q: 为什么查询"今日热点"显示的不是今天的数据?**
A: 数据为小时级更新,最新热榜查询的是前一个完整小时的数据。如需查询今日数据,使用 `--start-date` 和 `--end-date` 参数指定今天0:00到当前整点。

**Q: 支持查询多久之前的数据?**
A: 最长查询范围为30天。

**Q: 如何查看某个平台的完整50条榜单?**
A: 回复「查看{平台名}完整榜单」即可,系统会使用 `--platforms` 参数筛选该平台并输出完整50条数据。

**Q: 热点标题无法点击?**
A: 标题以 Markdown 超链接格式 `[标题](url)` 输出,无URL的热点仅显示文本。

### 故障排除

**Q: API返回空数据?**
A: 可能原因:1) 网络连接问题;2) API Key 无效或过期;3) 查询时间范围超出限制。请检查网络和API Key配置。

**Q: 输出被截断?**
A: 默认使用compact模式避免截断。如仍被截断,从compact输出末尾的 `dataFile` 路径读取完整JSON数据。

**Q: 关键字搜索没有结果?**
A: 尝试使用 `--expand-keywords` 参数对关键词进行泛化扩展,扩大搜索范围。

Source

Creator's repository · redfox-data/redfox-community

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk