trending-hub · diff
git:20260527.20d0351 to git:20260602.08c4de8
213 added, 320 removed. Audit A to A.
---
name: trending-hub
description: 帮你把抖音、微博、B站、快手、知乎、头条、百度等7个平台的热搜聚合在一起,省得一个个平台去看。想知道今天全网都在聊什么、哪个热点值得追、趋势怎么走,问我准没错。查热榜、导报告、订阅推送都行
dependency:
python:
- 无第三方依赖(使用标准库 urllib.request)
---
# 全网热点追踪
- ## 任务目标
+ ## 1. 简介
- - 本 Skill 用于:聚合抖音、微博、B站、快手、知乎、头条、百度等多个平台的热点数据,提供跨平台热点分析和趋势预测
- - 核心价值
- 解决内容创作者、市场运营者在热点追踪中的三大痛点:
- 热点分散难整合:无需逐个平台查看,一次聚合7大平台热榜
- 跨平台对比困难:自动识别同一事件在不同平台的讨论差异和热度表现,对热点进行快览分析
- 趋势判断模糊:基于热度值、上榜时长、平台覆盖等维度智能预测热点走势
- 订阅推送服务:定时推送最新热榜/昨日热榜
- - 触发条件:用户查询"热点榜"、"今日热点"、"全网热点榜"、"昨日热榜"或订阅推送服务
- - **不支持**:该技能不支持查询特定热词详情,仅提供全网热点榜聚合查询
+ **一句话定位**:全网热点聚合追踪工具,实时抓取抖音、微博、B站、快手、知乎、头条、百度等7大平台热搜数据,一站式查看全网热点。
- 核心能力
- 功能模块 能力描述 核心价值
- 🔍 全网热榜聚合 实时抓取7大平台热搜数据 一键获取全网热点,告别逐平台查看
- 🔗 跨平台事件识别 智能识别同一事件在不同平台的表述 自动归并相似话题,避免重复统计
- 📊 热度趋势预测 基于热度值、时长、平台覆盖预测走势 提前判断热点生命周期,把握创作窗口
- 📈 TOP10榜单提供 按综合热度排序输出TOP10热点 快速定位高价值选题
- 💬 跨平台讨论分析 展示不同平台的讨论焦点和差异 深度洞察舆论生态,精准定位受众
- ⏰ 订阅推送服务 定时推送最新热榜/昨日热榜 持续追踪热点动态,不错过关键机会
+ **核心价值**:解决内容创作者、市场运营者在热点追踪中的三大痛点:
+ - **热点分散难整合**:无需逐个平台查看,一次聚合7大平台热榜
+ - **跨平台对比困难**:自动识别同一事件在不同平台的讨论差异和热度表现
+ - **趋势判断模糊**:基于热度值、上榜时长、平台覆盖等维度智能预测热点走势
- ## 前置准备
+ **适用对象**:内容创作者、市场运营人员、媒体编辑、品牌策划、热点追踪爱好者。
- - 依赖说明:scripts脚本依赖 python-dateutil 库
+ **不支持**:该技能不支持查询特定热词详情,仅提供全网热点榜聚合查询。
+ ## 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: 终端配置
+ 方案2: 终端配置:
```bash
export REDFOX_API_KEY="ak_xxxx..."
```
- ## 操作步骤
+ ### 依赖安装
- - 标准流程:
- 1. 获取热点数据 — 脚本调用
- - 脚本调用:`python scripts/fetch_hotspot.py --source "全平台热点事件"`
- - 参数说明:
- - `--source`(必传):数据来源
- - `--platforms`(可选):平台代码列表,多个平台用逗号分隔,如`--platforms "wb,dy,bz"`
- - `--keywords`(可选):关键词列表,多个关键词用逗号分隔,如`--keywords "体育,足球"`
- - `--expand-keywords`(可选):是否对关键词进行泛化扩展,如用户搜"体育"会自动扩展为["体育", "足球", "篮球", "运动", "健身", "奥运", "世界杯", "NBA", "CBA", "乒乓球"]
- - `--start-date`/`--end-date`(可选):时间范围
- - `--output`(可选):输出格式,默认为compact(极简输出+文件保存),可选json、markdown
- - **【重要】输出格式说明**:
- - **compact模式(默认)**:输出极简结构化数据(元信息+平台TOP3概览),**末尾附带完整数据文件路径 `dataFile: {path}`**
- - 智能体应该使用compact模式获取数据,避免输出被截断
- - **【重要】只允许调用 1 次接口**:从 compact 输出末尾的 `dataFile` 路径读取完整 JSON 数据,禁止再用 json 模式重调接口
- - 如需查看完整数据,读取 compact 输出的 dataFile 路径对应文件
- - 返回数据结构见下方"数据结构说明"
- 2. **对话中输出报告文本** — 智能体根据JSON数据处理后,在对话中输出Markdown格式的报告文本
- - **必须执行**:完整输出报告文本
- - **【重要】必须严格按照输出模板格式输出,不得擅自修改格式**
- - **【重要】智能输出规则**:
- - 如果某平台没有热点数据(hotspots为空或不存在),则不展示该平台
- - 如果某平台数据少于10条,则展示实际数量(如只有5条就展示5条)
- - 查看更多引导根据实际剩余数据动态生成:
- - 数据≤10条:不显示查看更多引导
- - 数据>10条:显示"该平台还有{N}条数据未展示"
- - 输出格式模板(必须严格遵守):
+ ```bash
+ pip install python-dateutil
+ ```
- ```markdown
- # 🔥 全网热点榜(按平台分类)
+ ### 环境变量配置
- > **📅 统计时间:** 小时级更新,热点上榜时间为{start_time}至{end_time}
- > **📊 覆盖平台:** {实际有数据的平台列表}
+ | 变量名 | 说明 | 必填 |
+ |--------|------|------|
+ | `REDFOX_API_KEY` | 红狐 API Key | 是 |
- ---
+ ## 4. 使用指南
- ## 百度热点
+ ### 基础使用
- | 排名 | 热点 | 热度 |
- | :--: | ------------------- | :------: |
- | 1 | [{热点标题}]({url}) | {热度}万 |
- | 2 | [{热点标题}]({url}) | {热度}万 |
- | 3 | [{热点标题}]({url}) | {热度}万 |
- | ... | ... | ... |
- | 10 | [{热点标题}]({url}) | {热度}万 |
+ #### 查询最新热榜(默认)
- 💡 该平台还有40条数据未展示,回复「查看百度完整榜单」可查看全部数据。
+ ```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` 的数据。
- ## 知乎热点
+ #### 查询历史热榜
- | 排名 | 热点 | 热度 |
- | :--: | ------------------- | :------: |
- | 1 | [{热点标题}]({url}) | {热度}万 |
- | ... | ... | ... |
- | 8 | [{热点标题}]({url}) | {热度}万 |
+ ```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"
+ ```
- {该平台只有8条数据,不显示查看更多引导}
+ **日期范围规则**:
+ - 时间格式为 `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"
+ ```
- 💡 该平台还有35条数据未展示,回复「查看微博完整榜单」可查看全部数据。
+ 平台代码映射:
- ---
+ | 平台代码 | 平台名称 | 接口枚举值 |
+ |---------|---------|-----------|
+ | 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", "乒乓球"]
+ - 精确词(如"苏超"、"某明星名字"):直接传入原词,不进行扩展
+ - 支持泛化的大类:体育、娱乐、科技、财经、社会、游戏、汽车、美食、旅游、时尚等
- **跨平台热度王**:{出现在最多平台的热点标题}(覆盖{N}个平台)
+ #### 查看完整榜单
- **上升最快**:{热度增长最快的热点标题}
+ 当用户回复「查看{平台名}完整榜单」时:
- **值得关注**:{智能体根据热度、平台覆盖、趋势综合判断的热点}
+ ```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
- ```markdown
- ## 百度热点完整榜单
+ **对比查询场景**:当用户需要对比多天数据时,需分别查询多天的热榜:
- > **📅 统计时间:** 小时级更新,热点上榜时间为{start_time}至{end_time}
- > **📊 覆盖平台:** {平台名称}
+ ```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" # 今日实时
+ ```
- | 排名 | 热点 | 热度 |
- | :--: | ------------------- | :------: |
- | 1 | [{热点标题}]({url}) | {热度}万 |
- | 2 | [{热点标题}]({url}) | {热度}万 |
- | ... | ... | ... |
- | 50 | [{热点标题}]({url}) | {热度}万 |
+ ### 输出格式说明
- ---
+ **compact模式(默认)**:输出极简结构化数据(元信息+平台TOP3概览),末尾附带完整数据文件路径 `dataFile: {path}`。智能体应使用compact模式获取数据,从 `dataFile` 路径读取完整JSON数据。只允许调用1次接口。
- 📬 **订阅推送**:
+ **输出格式模板**:按平台分类输出,每个平台展示TOP10热点。智能输出规则:
+ - 如果某平台没有热点数据,则不展示该平台
+ - 如果某平台数据少于10条,则展示实际数量
+ - 数据>10条时显示"该平台还有{N}条数据未展示"
+ - 平台顺序:百度 → 知乎 → 微博 → 抖音 → B站 → 快手 → 头条
- - 回复「订阅每日推送」,每天定时推送最新热榜
- - 回复「订阅每周推送」,每周定时推送热门汇总
- ```
+ 输出格式模板详见 [references/output-templates.md](references/output-templates.md)。
- **智能输出逻辑说明**:
- - 按平台顺序遍历数据(百度 → 知乎 → 微博 → 抖音 → B站 → 快手 → 头条)
- - 跳过没有数据的平台(不显示空表格)
- - 每个平台最多展示TOP10,不足10条则展示实际数量
- - 动态计算剩余数据:
- - 如果数据≤10条:不显示查看更多引导
- - 如果数据>10条:计算剩余条数并显示"该平台还有{N}条数据未展示"
+ ### 热度值处理
- ## 数据结构说明
+ - 如果热度值已包含单位(如"万"、"亿"),直接使用原始值
+ - 如果热度值为纯数字,转换为"数字+万"格式(`hotCount // 10000` 整数除法)
+ - 示例:百度热度 `7904508` → `790万`
+ - 热度值格式必须为"数字+万",禁止包含其他字符
- ### API返回数据格式
+ ### 订阅推送服务
+ - **每日推送**:每天定时推送最新热榜(如早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站/抖音/快手/头条/微博/知乎 |
-
- ### 平台代码映射
-
- - `bd`:百度
- - `bz`:B站
- - `dy`:抖音
- - `ks`:快手
- - `tt`:头条
- - `wb`:微博
- - `zh`:知乎
-
- ### 1. 获取热榜数据
-
- #### 1.1 实时热榜(默认)
-
- 要求最新、当下等实时热榜时,自动查询前一个完整小时:
-
- ```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` 的数据
-
- #### 1.2 历史热榜查询
-
- 支持查询昨天的热度峰值最高的热搜数据:
-
- ```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`
- - 日期范围是 **[start_date, end_date)** 左闭右开区间
- - 例如:`--start-date "2026-04-01 00:00:00" --end-date "2026-04-02 00:00:00"` 查询的是4月1日当天的数据
- - 例如:`--start-date "2026-04-09 00:00:00" --end-date "2026-05-09 00:00:00"` 查询的是4月9日至5月8日共30天的数据
-
- **参数说明**:
-
- - `--source`:数据来源,默认值:"全平台热点事件"(通常无需手动指定)
- - `--platforms`:平台代码列表(可选),多个平台用逗号分隔,支持:bd=百度、bz=B站、dy=抖音、ks=快手、tt=头条、wb=微博、zh=知乎
- - `--keywords`:关键词列表(可选),多个关键词用逗号分隔,用于筛选特定关键词的热点
- - `--expand-keywords`:是否对关键词进行泛化扩展(可选),如用户搜"体育"会自动扩展为["体育", "足球", "篮球", "运动", "健身", "奥运", "世界杯", "NBA", "CBA", "乒乓球"]
- - `--start-date`:开始时间(包含),格式 `YYYY-MM-DD HH:MM:SS`,也可简写为 `YYYY-MM-DD`(自动补全为 00:00:00)
- - `--end-date`:结束时间(不包含),格式 `YYYY-MM-DD HH:MM:SS`,也可简写为 `YYYY-MM-DD`(自动补全为 00:00:00)
- - **最长查询范围:30天**
-
- **关键词泛化策略**:
-
- - 大词(如"体育"、"娱乐"、"科技"等):自动扩展为10个泛化词,如"体育"→["体育", "足球", "篮球", "运动", "健身", "奥运", "世界杯", "NBA", "CBA", "乒乓球"]
- - 精确词(如"苏超"、"某明星名字"等):直接传入原词,不进行扩展
- - 支持泛化的大类:体育、娱乐、科技、财经、社会、游戏、汽车、美食、旅游、时尚等
-
- **平台代码与接口枚举值映射**:
- | 平台代码 | 平台名称 | 接口枚举值 |
- |---------|---------|-----------|
- | ks | 快手 | 1 |
- | dy | 抖音 | 2 |
- | wb | 微博 | 5 |
- | bd | 百度 | 7 |
- | bz | B站 | 8 |
- | zh | 知乎 | 9 |
- | tt | 头条 | 10 |
-
- #### 1.3 智能体判断逻辑
-
- 根据用户意图自动选择查询方式(假设今天日期为T,当前时间为T HH:MM:SS):
+ | 字段 | 说明 |
+ |------|------|
+ | hotspots | 热点列表,包含所有平台的热点数据 |
+ | title | 热点标题(已处理空格) |
+ | url | 热点链接(空格已转为%20) |
+ | hotCount | 热度值(纯数字,已移除"万热度"等字符) |
+ | index | 平台内排名 |
+ | gmtCreate | 创建时间 |
+ | platCode | 平台代码:bd/bz/dy/ks/tt/wb/zh |
+ | platName | 平台名称:百度/B站/抖音/快手/头条/微博/知乎 |
- **今日热点查询**:
+ ## 5. 使用场景
- - "今日热榜" / "今日热点" / "今天热榜" → 查询今日0:00到当前时间的整点
- - 脚本调用:`python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "T 00:00:00" --end-date "T {当前小时}:00:00"`
- - 示例:当前时间 `2026-04-16 08:30:00`,则查询 `--start-date "2026-04-16 00:00:00" --end-date "2026-04-16 08:00:00"`
- - 统计时间展示:**📅 统计时间:** 小时级更新,热点上榜时间为2026-04-16 00:00至2026-04-16 08:00
+ ### 场景一:内容创作者追热点
- **最新热点查询**:
+ **角色**:自媒体创作者
+ **需求**:每天早晨快速了解全网热点,确定当日选题方向
+ **使用方式**:输入"今日热点",获取7大平台实时热榜TOP10
+ **预期收益**:5分钟内掌握全网热点动态,精准定位高价值选题
- - "最新热榜" / "最新热点" / "热榜" / "热点榜" → 查询前一个完整小时(默认行为)
- - 脚本调用:`python scripts/fetch_hotspot.py --source "全平台热点事件"`(无需指定时间参数)
- - 统计时间展示:**📅 统计时间:** 小时级更新,热点上榜时间为{start_time}至{end_time}
+ ### 场景二:市场运营竞品分析
- **昨日热点查询**:
+ **角色**:品牌市场运营
+ **需求**:对比同一事件在不同平台的讨论差异,了解舆论生态
+ **使用方式**:查询指定关键词热点,观察跨平台讨论焦点
+ **预期收益**:深度洞察不同平台用户讨论差异,制定差异化运营策略
- - "昨日热榜" / "昨日热点" / "昨天热榜" → 查询昨日0:00到24:00的数据
- - 脚本调用:`python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "T-1 00:00:00" --end-date "T 00:00:00"`
- - 示例:今天为 `2026-04-16`,则查询 `--start-date "2026-04-15 00:00:00" --end-date "2026-04-16 00:00:00"`
- - 统计时间展示:**📅 统计时间:** 小时级更新,热点上榜时间为2026-04-15 00:00至2026-04-16 00:00
+ ### 场景三:PR危机监测
- **本周热点查询**:
+ **角色**:公关经理
+ **需求**:实时监测特定品牌或事件在多平台的热度变化
+ **使用方式**:通过关键词筛选 + 订阅推送,持续追踪相关热点
+ **预期收益**:第一时间发现舆情信号,抢占危机应对窗口
- - "本周热榜" / "本周热点" / "这周热榜" → 查询本周一0:00到当前时间的整点
- - 本周计算规则:本周一为本周开始,周日为本周结束
- - 脚本调用:`python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "{本周一日期} 00:00:00" --end-date "T {当前小时}:00:00"`
- - 示例:今天是2026-05-09(周六),本周一为2026-05-04,当前时间为2026-05-09 15:30:00
- - 查询:`--start-date "2026-05-04 00:00:00" --end-date "2026-05-09 15:00:00"`
- - 统计时间展示:**📅 统计时间:** 小时级更新,热点上榜时间为2026-05-04 00:00至2026-05-09 15:00
- - **【重要】本周一时间计算规则**:
- - 正确:今天是2026-05-09(周六),本周一 = 2026-05-04
- - 错误:今天是2026-05-09(周六),本周一 = 2026-05-03(往前多算了一天)
- - 计算公式:本周一 = 今天日期 - (今天星期几 - 1)天
+ ### 场景四:热点趋势研究
- **对比查询场景**:
- 当用户需要对比多天数据时,需**分别查询**多天的热榜,而非合并查询:
+ **角色**:数据分析师
+ **需求**:对比多天热点数据,分析热点演变趋势
+ **使用方式**:使用对比查询分别查询多天数据,分析热度变化
+ **预期收益**:基于数据判断热点生命周期,输出趋势分析报告
- - "对比昨天和今天的热榜" → 分别查询昨日热榜和今日热榜,输出两份数据进行对比
- - "对比4月1日和4月2日的热榜" → 分别查询4月1日热榜和4月2日热榜,输出两份数据进行对比
+ ## 6. 项目架构
- **对比查询执行方式**:
+ ### 目录结构
- ```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" # 今日实时
```
-
- ### 2. 输出处理流程
-
- **核心原则:按平台分类输出,每个平台展示TOP10。**
-
- #### 步骤一:获取数据
-
- ```bash
- python scripts/fetch_hotspot.py --source "全平台热点事件" --start-date "..." --end-date "..."
+ trending-hub/
+ ├── SKILL.md # 技能描述文件
+ ├── scripts/
+ │ └── fetch_hotspot.py # 热点数据获取脚本
+ └── references/
+ └── output-templates.md # 输出格式模板参考
```
- #### 步骤二:按平台分类输出
-
- - 智能体读取JSON数据,按平台分类整理
- - **每个平台输出TOP10热点**(共7个平台,每个平台展示前10条)
- - **输出格式**:
- 1. 标题:统计时间、覆盖平台
- 2. 各平台热搜TOP10表格(微博、抖音、B站、快手、知乎、头条、百度)
- 3. 全网热点小总结(今日最热、跨平台热度王、上升最快、值得关注)
- 4. 查看更多引导(每个平台有50条数据)
- 5. 订阅推送引导(每日/每周)
-
- ### 3. 热度值处理
-
- **热度格式化规则**:
-
- - **智能判断**:如果热度值已包含单位(如"万"、"亿"),直接使用原始值,不做格式化
- - 示例:知乎热度 `91 万热度` → 直接使用 `91 万热度`
- - **数字转换**:如果热度值为纯数字,转换为"数字+万"格式
- - 示例:百度热度 `7904508` → `790万`
- - **特殊处理**:部分平台热度值可能带有"热度"后缀,予以保留
-
- ### 4. 用户交互引导
-
- #### 查看更多
+ ### 技术栈
- 当用户回复「查看{平台名}完整榜单」时:
+ | 组件 | 技术 | 说明 |
+ |------|------|------|
+ | 脚本语言 | Python 3 | 使用标准库 urllib.request |
+ | 外部依赖 | python-dateutil | 日期处理 |
+ | 数据接口 | Redfox API | 多平台热点数据聚合 |
+ | 输出格式 | JSON / Markdown | 结构化和可视化输出 |
- - 使用 `--platforms` 参数筛选该平台数据
- - 输出该平台完整50条热点列表
- - 输出格式:Markdown表格(减少数据体积,避免被截断)
+ ### 核心模块说明
- 示例:
+ | 模块 | 功能 |
+ |------|------|
+ | `fetch_hotspot.py` | 从API获取多平台热点数据,支持平台筛选、关键词搜索、时间范围查询、关键词泛化 |
+ | `output-templates.md` | 定义对话输出格式模板,规范各平台TOP10表格和小结格式 |
- ```bash
- python scripts/fetch_hotspot.py --source "全平台热点事件" --platforms wb --output markdown
- ```
+ ### 资源索引
- #### 订阅推送
+ - 脚本: 见 [scripts/fetch_hotspot.py](scripts/fetch_hotspot.py)(用途与参数:从API获取热点数据,支持平台筛选)
+ - 参考: 见 [references/output-templates.md](references/output-templates.md)(何时读取:对话输出时参考格式模板)
- - **每日推送**:每天定时推送最新热榜(如早8点、晚8点)
- - **每周推送**:每周定时推送热门汇总(如周一早上)
- - 推送格式:精简版TOP10表格 + 小总结
+ ## 7. 常见问答
- ### 5. 订阅推送服务
+ ### 安装相关
- #### 5.1 订阅类型
+ **Q: 脚本运行报错 "ModuleNotFoundError: No module named 'dateutil'"**
+ A: 请安装依赖:`pip install python-dateutil`
- - **每日推送**:每天定时推送最新热榜(如早8点、晚8点)
- - **每周推送**:每周定时推送热门汇总(如周一早上)
+ **Q: 提示 "REDFOX_API_KEY not found"**
+ A: 请确保已配置环境变量 `REDFOX_API_KEY`,可参考上方鉴权章节配置。
- #### 5.2 推送格式
+ ### 使用相关
- 推送消息采用精简格式,包含:
+ **Q: 为什么查询"今日热点"显示的不是今天的数据?**
+ A: 数据为小时级更新,最新热榜查询的是前一个完整小时的数据。如需查询今日数据,使用 `--start-date` 和 `--end-date` 参数指定今天0:00到当前整点。
- - 标题:📊 今日热点榜
- - 统计时间范围
- - 各平台TOP3热点
- - 全网热点小总结
- - 查看详情引导
+ **Q: 支持查询多久之前的数据?**
+ A: 最长查询范围为30天。
- ## 使用示例
+ **Q: 如何查看某个平台的完整50条榜单?**
+ A: 回复「查看{平台名}完整榜单」即可,系统会使用 `--platforms` 参数筛选该平台并输出完整50条数据。
- - 示例1: 查询今日热点
- - 场景/输入: 用户输入"热点榜"或"今日热点"
- - 执行步骤:
- 1. 调用 `python scripts/fetch_hotspot.py --source "全平台热点事件"` 获取数据
- 2. **在对话中输出按平台分类的热点榜**(每个平台TOP10 + 小总结 + 查看更多引导 + 订阅引导)
- - 预期产出: 用户在对话中看到完整报告内容
- - 关键要点: 确保输出完整的TOP10热点分析
+ **Q: 热点标题无法点击?**
+ A: 标题以 Markdown 超链接格式 `[标题](url)` 输出,无URL的热点仅显示文本。
- ## 资源索引
+ ### 故障排除
- - 脚本:见 [scripts/fetch_hotspot.py](scripts/fetch_hotspot.py)(用途与参数:从API获取热点数据,支持平台筛选)
- - 参考:见 [references/output-templates.md](references/output-templates.md)(何时读取:对话输出时参考格式模板)
+ **Q: API返回空数据?**
+ A: 可能原因:1) 网络连接问题;2) API Key 无效或过期;3) 查询时间范围超出限制。请检查网络和API Key配置。
- ## 注意事项
+ **Q: 输出被截断?**
+ A: 默认使用compact模式避免截断。如仍被截断,从compact输出末尾的 `dataFile` 路径读取完整JSON数据。
- - **【重要】输出格式必须严格遵守**:
- - 智能体输出结果必须严格按照 [references/output-templates.md](references/output-templates.md) 中的模板格式输出
- - 不得擅自修改、调整或简化模板格式
- - 必须按平台分类输出,每个平台展示TOP10
- - 平台展示格式:二级标题为平台名,三级标题为"{平台名}热点"
- - 必须包含全网热点小总结
- - 必须包含查看更多引导和订阅推送引导
- - **【重要】平台顺序**:百度 → 知乎 → 微博 → 抖音 → B站 → 快手 → 头条
- - **【重要】热度值格式**:
- - 热度值格式必须为"数字+万"(如"938万"),禁止包含其他字符
- - 换算规则:`hotCount // 10000`(整数除法)
- - 错误示例:"938万4"、"938.5万"、"热度938万"
- - 正确示例:"938万"
- - **热点标题格式**:
- - 标题显示为超链接:`[{标题}]({url})`
- - 无URL的标题仅显示文本
- - **交互引导**:
- - 每个平台有50条数据,提示用户可查看完整榜单
- - 提供每日/每周订阅选项
+ **Q: 关键字搜索没有结果?**
+ A: 尝试使用 `--expand-keywords` 参数对关键词进行泛化扩展,扩大搜索范围。