Skill: yuanyi-github/gzh-explosive-content-detector (version 1.0.3)

--- name: gzh-explosive-content-detector description: 为公众号文章创作打造的专业数据洞察工具。全网持续收录每日爆款文章，收录依据：低粉高阅读、阅读靠前、数据增长中、原创靠前，助力号主获取数据参考。 dependency: python: - requests>=2.28.0 system: --- # 公众号爆款文章查询 --- ## 简介 面向公众号选题与创作的数据洞察 Skill：持续收录全网爆款文章，按「低粉高阅读、阅读靠前、数据增长中、原创靠前」等维度筛选，为号主提供可参考的爆款样本。 **能做什么？** - 🔍 **关键词探测**：按赛道/细分词查询最匹配的公众号爆款内容 - 📊 **智能筛选**：结合用户意图与内容相关性，从候选中挑出最多 10 条高质量推荐 - 🃏 **双形态展示**：Markdown 卡片 + HTML 网格卡片，便于阅读与分享 - 🧭 **细分引导**：展示结果后主动给出 10 个可继续深挖的细分赛道词 **适合谁用？** - 公众号运营 / 编辑 —— 找选题、看对标 - 内容创作者 —— 了解近期高热话题与标题范式 - MCN / 增长 —— 批量观察某一垂类的爆款特征 **运行依赖**：Python `requests>=2.28.0`。 --- ## 功能特性 ### 核心功能 - **爆款文章探测**：搜索全站热门的公众号文章 - **时间窗口**：默认最近 7 天；最多可查询近30天公众号爆款数据 - **泛化词治理**：识别大类泛词后必须先给细分推荐并等待用户「拓展 / 不拓展」，禁止同轮继续跑脚本 - **输出产物**：脚本生成 `{keyword}_爆款数据.html`；筛选逻辑可参考 `{keyword}_爆款数据.json`（若脚本产出） ### 特色亮点 - **意图优先**：优先提取用户描述中的细分方向词，避免只用「职场」「情感」等过大类词一查了之 - **数据诚实**：非实时快照； today / 超 30 天等诉求有固定话术说明边界 - **禁止凑数**：最多 10 条，少于 10 条如实展示，禁止编造 - **展示闭环**：每条含推荐理由（≥15 字、禁止空话模板）；文末必须附 10 个细分词引导下一轮查询 --- ## 使用场景 当用户提出下列类型需求时，应调用本 Skill： | 用户可能会问 | Agent 行为概要 | | --------------------------------------- | ------------------------------------------------ | | 「最近有什么爆款」「看看全站热门」 | 关键词传 `""`，按默认时间窗查询全站热门 | | 「职场 / 情感领域有什么爆款」（大类词） | 走泛化词流程：先给细分词 + 等待「拓展 / 不拓展」 | | 「职场沟通技巧」「亲子教育选题」 | 视为细分词，可直接调用脚本（无需拓展询问） | | 「近 15 天的 xxx」 | 将口语映射为 `startDate = 今天 - N 天` 后查询 | | 「要高赞 / 高分享的」 | 意图类型归为数据需求型，筛选时侧重互动与数据表现 | ### 典型示例 **场景一：无赛道浏览** > 用户：最近公众号有什么爆款文章？ > 助手：`--keyword ""` 拉全站热门 → 展示卡片与 HTML → 再给 10 个热门赛道细分词。 **场景二：大类词需拓展** > 用户：帮我看看职场类的爆款。 > 助手：识别「职场」为泛化词 → 仅回复细分词列表并说明「拓展 / 不拓展」→ **本轮不调用脚本** → 用户回复后再执行查询。 **场景三：自带细分描述** > 用户：我是情感号，做恋爱、婚姻、婆媳方向，给我热门参考。 > 助手：提取「情感、恋爱技巧、婚姻经营、婆媳关系」等多词逗号查询 → 意图筛选 → 展示 ≤10 条。 --- ## 重要数据说明 **时间与实时性** - **数据时间差说明**：文章互动数据截止为 **数据获取时间**，互动量可能持续增长，后续会持续更新。 - 默认时间范围：**最近 7 天**（`startDate = 今天 - 7 天`）；数据不足时 **自动扩展范围**，并按下文固定话术 **告知用户**。 **边界话术（须原文使用）** - 用户提及「今天 / 今日」：**「非常抱歉，今天的数据暂未更新，已为您展示最近可用的数据」** - 用户要求的时间超出 30 天：**「非常抱歉，当前仅支持最近30天的数据，已为您展示最接近的数据」** --- ## 核心执行规则（必须遵守） 1. **泛化词必须先问再查**：识别为泛化词时 **禁止直接调用脚本**；须先输出细分词推荐并等待用户选择。 2. **正确顺序**：关键词提取 → 判断是否泛化词 → 泛化词则询问 → **用户回复后再调用脚本**。 3. **强制等待**：输出细分推荐后 **必须停止本轮脚本执行**；不得在同一 assistant 回合内继续调用脚本。 **泛化词 vs 具体词（定义须保留，用于判定）** - **泛词**：抽象层级高、覆盖范围广的概括性词汇，无具体场景/属性修饰，常为行业大类；语义为上位概念（如「职场」含工作/打工人；「情感」含恋爱/婚姻；如 AI）；上下文中常搭配「领域」「类型」等（如「职场领域」「情感类型」）。 - **具体词**：抽象层级低、指向明确，含场景/属性修饰，为某泛词的直接子类；语义为下位概念（如「职场沟通」属职场技能子类；「恋爱技巧」属情感子类）；结构常含修饰（如「婆媳」→「婆媳关系」；「亲子」→「亲子教育」）。 --- ## 项目架构 ### 目录与脚本（参考） ``` gzh-explosive-content-detector/ ├── SKILL.md # 本技能文档 ├── scripts/ │ └── fetch_gzh_trends.py # 数据拉取与 HTML 生成入口 └── （运行产出）{keyword}_爆款数据.html （若脚本生成）{keyword}_爆款数据.json ``` ### 数据流（概念） ``` 用户请求 → 意图/关键词/泛化词判定 → fetch_gzh_trends.py → HTML（+ JSON） ↓ 筛选与卡片渲染说明 ← 意图 + 相关性 + 数据分 ``` --- ## 常见问答 **Q1：用户只说「职场」，能不能直接查？** A：**不能**。须先走泛化词拓展并等待「拓展 / 不拓展」，同一轮禁止脚本。 **Q2：什么时候关键词传空？** A：用户 **未给出任何赛道或主题词**，仅泛泛要看爆款 / 热门时，传 `""` 查全站。 **Q3：数据为空怎么办？** A：提示关键词较为冷门，建议更换为更热门的赛道关键词；**不得**因数据少而改用无关关键词或误触发泛化词拓展流程。 --- ## 更新日志 ### v1.1.1 - 与原版执行逻辑对齐校验：补回固定话术、筛选步骤、卡片示例、自检原文及「拓展=逗号多词」等约束，避免重构引入歧义 ### v1.1.0 - 参照模板重构文档结构（简介 / 场景 / 指南 / 架构 / FAQ） - 合并重复的数据说明与展示要求，修正泛化词示例代码块格式 ### v1.0.0 - 爆款探测、泛化词治理、筛选与双形态展示、细分推荐与自检清单

path: references/gzh_trend_data_format.md
content: # 公众号爆款数据格式说明

## 概览

本文档定义了公众号爆款数据查询脚本 `fetch_gzh_trends.py` 的输入输出格式规范。

## 重要说明

**爆款文章范围**：阅读数1w+以上的文章和部分阅读数远高于粉丝数的文章。

## 输入格式

### 脚本参数

```bash
python scripts/fetch_gzh_trends.py --keyword <关键词> [选项]
```

| 参数 | 必填 | 说明 | 默认值 |
|------|------|------|--------|
| `--keyword` | 是 | 搜索关键词（支持多个关键词，逗号分隔，最多5个，总长度不超过200字符） | - |
| `--start-date` | 否 | 开始日期，格式 yyyy-MM-dd | 最近30天 |
| `--max-items` | 否 | 每类内容最多展示数量 | 10 |
| `--output-format` | 否 | 输出格式：text、json 或 html | html |
| `--output-file` | 否 | 输出文件路径 | 关键词_爆款数据.html |
| `--debug` | 否 | 调试模式，打印原始API响应 | False |

## 输出格式


### 文章数据字段（完整）

每篇文章包含以下字段：

#### 文章基本信息

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `photoId` | string | 文章ID（唯一标识） |
| `title` | string | 文章标题（可能为空，需从summary提取） |
| `summary` | string | 文章摘要/正文片段 |
| `publicTime` | string | 发布时间（格式：YYYY-MM-DD HH:MM:SS） |

#### 作者信息

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `accountId` | string | 公众号ID（格式：gh_xxxx 或自定义ID） |
| `userName` | string | 公众号名称 |
| `userHeadUrl` | string | 作者头像地址（可能为NULL） |
| `fans` | string | 粉丝数（可能为"100w+"格式） |


**作者二维码链接拼接规则**：
```
https://open.weixin.qq.com/qr/code?username={accountId}
```
点击后会弹出公众号二维码，用户可扫码关注。

**作品链接**：
- 直接使用 `oriUrl` 字段（完整文章链接）
- 无备用方案

#### 互动数据

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `likeCount` | int/string | 点赞数 |
| `commentCount` | int/string | 评论数 |
| `shareCount` | int/string | 分享数 |
| `interactiveCount` | int/string | 互动总数 |
| `clicksCount` | string | 阅读数（如"10w+"） |
| `watchCount` | string | 在看数 |

#### 图片链接

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `coverUrl` | string | 封面图URL |

#### 其他字段

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `oriUrl` | string | 文章原始链接（完整URL） |
| `orderNum` | int | 排序序号（0=头条，1=次条） |
| `originalFlag` | int | 原创标识（1=原创） |
| `type` | string | 内容类型（如"文摘"） |
| `thumbnail` | string | 缩略图URL |

### JSON 输出示例

```json
{
  "keyword": "职场",
  "low_fan_explosive": [
    {
      "accountId": "gh_e6580d8dcccb",
      "clicksCount": "5w+",
      "commentCount": "9",
      "coverUrl": "https://mmbiz.qpic.cn/mmbiz_jpg/...",
      "fans": "100w+",
      "interactiveCount": "988",
      "likeCount": "124",
      "orderNum": 0,
      "originalFlag": 1,
      "photoId": "8CF6280D97686E92F91445054AF9AAF9",
      "publicTime": "2026-03-19 20:06:58",
      "shareCount": "834",
      "summary": "蓝箭航天的朱雀2..."
    }
  ],
  "ten_w_reading": [
    {
      "accountId": "YJwujian",
      "clicksCount": "10w+",
      "commentCount": "29",
      "coverUrl": "https://mmbiz.qpic.cn/mmbiz_jpg/...",
      "fans": "100w+",
      "interactiveCount": "4747",
      "likeCount": "706",
      "orderNum": 0,
      "originalFlag": 1,
      "photoId": "319359512EA49A0D6774CEBAEDA8E134",
      "publicTime": "2026-03-05 22:09:00",
      "shareCount": "3854",
      "summary": "这下再也不用担心我团战打..."
    }
  ],
  "original_rank": [
    {
      "accountId": "beitaishuoche",
      "clicksCount": "9w+",
      "commentCount": "27",
      "coverUrl": "https://mmbiz.qpic.cn/mmbiz_jpg/...",
      "fans": "100w+",
      "interactiveCount": "852",
      "likeCount": "352",
      "orderNum": 0,
      "originalFlag": 1,
      "photoId": "9D8E75E91E08C147BE9F3F9BF23A691C",
      "publicTime": "2026-03-05 17:30:05",
      "shareCount": "398",
      "summary": "遇到刹车失灵，撞墙会是最安..."
    }
  ]
}
```

### HTML 输出格式（卡片形式）

HTML 输出采用响应式卡片布局，结构清晰，便于阅读：

```html
<div class="card">
    <div class="card-title-row">
        <span class="card-index">1.</span>
        <a href="https://mp.weixin.qq.com/s/{photoId}" class="card-title" target="_blank">文章标题</a>
    </div>
    <div class="card-meta">
        <a href="https://open.weixin.qq.com/qr/code?username={accountId}" 
           class="author-link" target="_blank">公众号名称</a>
        <span class="meta-divider">·</span>
        <span class="pub-time">发布日期：3月15日</span>
    </div>
    <div class="card-stats">
        <span class="read-count">📖 10w+阅读</span>
        <span class="category-tag">低粉高阅读</span>
        <a href="https://mp.weixin.qq.com/s/{photoId}" class="view-note-btn" target="_blank">查看作品 ↗</a>
    </div>
</div>
```

### 卡片字段说明

| 字段 | 说明 |
|------|------|
| 序号 | 从1开始编号，格式为"1."、"2."等 |
| 标题 | 文章标题（可点击跳转文章详情） |
| 作者 | 公众号名称（可点击弹出二维码） |
| 发布日期 | 文章发布日期（月日格式） |
| 阅读数 | 文章阅读量 |
| 分类标签 | 低粉高阅读/阅读靠前/数据增长中/原创靠前 |
| 查看作品 | 跳转文章详情的链接 |

## 四大榜单说明

### 1. 低粉高阅读（lowPowderExplosiveArticle）
- **定位**：小号爆款文章，粉丝数较少但阅读数据优秀
- **价值**：小号也能出爆款，参考价值高
- **特点**：粉丝数通常在10万以下，阅读数据突出

### 2. 阅读靠前（tenWReadingRank）
- **定位**：阅读量排名靠前的高传播文章
- **价值**：高传播力内容，适合学习爆款逻辑
- **特点**：阅读量高，传播广度强

### 3. 数据增长中（onewReadingRank）
- **定位**：阅读量在1w~10w范围内，具有增长潜力的文章
- **价值**：发掘潜力内容，把握增长趋势
- **特点**：阅读量1w~10w，处于增长阶段

### 4. 原创靠前（originalRank）
- **定位**：原创优质内容排名靠前
- **价值**：原创保护，内容质量高
- **特点**：originalFlag=1，内容原创性强

## 使用注意事项

### 数据获取原则

1. **必须调用脚本查询**：不能使用其他方式查询或直接搜索网络资讯
2. **必须等待脚本执行完成**：获取返回结果后才能进行后续步骤
3. **必须展示完整数据列表**：不能跳过或询问用户

### 数据展示原则

1. **展示所有字段**：每篇文章展示完整信息，包括封面图、作者链接、互动数据等
2. **四类爆款内容全部展示**：低粉高阅读、阅读靠前、数据增长中、原创靠前

### 字段说明

1. **标题提取**：如果title字段为空，从summary字段提取前30个字符作为标题
2. **作者名称**：公众号没有userName字段，使用accountId代替
3. **粉丝数格式**：可能是"100w+"、"5.2万"等格式，直接展示原值
4. **阅读数格式**：可能是"10w+"、"5w+"等格式，直接展示原值


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal:  | SkillSpector: suspicious (MEDIUM)