Use when user shares a WeChat public account article link, asks to search/list articles by account name, queries trending articles by keyword, or needs WeCha...
---
name: wechat-article-reader
description: "Use when user shares a WeChat public account article link, asks to search/list articles by account name, queries trending articles by keyword, or needs WeChat article content read and summarized."
metadata:
{
"openclaw":
{
"allowed-tools": ["exec", "read", "write", "edit"],
},
}
---
# 微信公众号文章读取器
## 模式选择
| 场景 | 用哪个 |
|---|---|
| 我有文章链接,想看全文 | 模式一 |
| 我有**多个**文章链接,想对比内容 | 模式一(并行) |
| 我知道公众号名,想查它发了什么 | 模式二 |
| 我不知道看什么,想找热门文章 | 模式三 |
| 我有文章链接,想查互动数据 | 模式四 |
| 我想知道哪些公众号在这个领域表现好 | 模式五 |
| 我想深度分析爆款文章的创作技巧 | 模式三(分析) |
---
## 模式一:单篇文章URL(无需Cookie)
有文章链接时使用,直接抓取正文。
```bash
python3 gzh_article.py fetch "<url>"
```
**多文章并行:** 多个 URL 之间无依赖,务必并行调用以节省时间。
```bash
python3 gzh_article.py fetch "<url1>" &
python3 gzh_article.py fetch "<url2>" &
wait
```
> ⚠️ `stats` 仅对**爆款文章**(已在三方聚合库中)有效,新发布的深度文章通常查不到。如只需正文内容,直接用 `fetch` 即可,无需调用 `stats`。
---
## 模式二:按公众号名称搜索文章列表(需要Cookie)
查某个公众号最新N篇文章,支持日期筛选和正文预览。
```bash
python3 gzh_article.py list "公众号名称" [文章数] [--preview] [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD]
```
- 不带 `--preview`:只输出文章列表
- 带 `--preview`:列表 + 每篇正文预览(约800字)
> ⚠️ API 有访问深度限制,历史文章可能不完整。
---
## 模式三:爆款文章查询(全网)
按关键词搜全网热门文章,不需要 Cookie。输出文字格式(标题、链接、互动数据、摘要)。
```bash
python3 gzh_article.py trends "<关键词>" [--max-items N] [--start-date YYYY-MM-DD]
```
示例:
```bash
python3 gzh_article.py trends "AI" --max-items 5
python3 gzh_article.py trends "职场沟通" --max-items 10
python3 gzh_article.py trends "" # 全网热门,默认15条
```
数据来源:第三方聚合接口,涵盖低粉高阅读 / 10万+阅读 / 原创靠前 / 数据增长。
**输出包含**:标题、链接、公众号、发布时间、粉丝数、类别、互动数据、文章摘要
### 5 维度分析(可选)
当用户需要深度分析时,可对文章进行 5 维度解读:
1. **爆款原因** — 为什么被转发
2. **内容特点** — 选题角度、结构、风格
3. **受众匹配** — 打动了谁
4. **可复制性** — 能借鉴什么
5. **数据解读** — 互动数据说明什么
**触发词**:分析、点评、深度解读、5维度
---
## 模式四:查询特定文章的互动数据
通过文章 URL 查询该文章的互动数据(点赞/评论/分享/阅读)。
```bash
python3 gzh_article.py stats "<url>"
```
> ⚠️ **仅对爆款文章有效**。刚发布的新文章、深度长文通常不在三方聚合库中,查询会返回"未收录"。此时应直接使用 `fetch` 获取正文内容进行分析,不必重试 `stats`。
## 模式五:多公众号对比
按公众号聚合数据,对比各账号表现(粉丝、平均阅读、平均互动等)。
```bash
# 关键词搜索(无需Cookie)
python3 gzh_article.py compare "<关键词>" [数量]
# 指定公众号对比(需要Cookie)
python3 gzh_article.py compare --accounts 量子位,AI科技迷,差评
# 指定链接对比(需要Cookie)
python3 gzh_article.py compare --urls "<url1>","<url2>"
```
示例输出:
```
📊 公众号数据对比: AI
公众号 粉丝 文章 平均阅读 平均点赞 平均评论
-----------------------------------------------------------------
量子位 100w 3 8.5万 1,200 89
AI科技迷 50w 2 3.2万 450 32
...
-----------------------------------------------------------------
共 2 个公众号 | 5 篇文章
```
---
## 泛化词治理(重要规则)
**核心规则**:识别为泛化词时,**必须先输出细分词推荐并等待用户选择**,禁止直接调用脚本。
| 泛化词类型 | 示例 | 处理方式 |
|------------|------|----------|
| 行业大类词 | 职场、情感、育儿、AI | 先问"拓展/不拓展" |
| 细分词 | 职场沟通、亲子教育、恋爱技巧 | 直接搜索,无需询问 |
**泛化词判断原则**:
- 无场景/属性修饰 = 泛化词(如"职场")
- 有具体场景/修饰 = 细分词(如"职场沟通")
**执行流程**:
1. 用户说"职场类爆款" → 识别"职场"为泛化词
2. 回复细分词列表,询问"拓展/不拓展"
3. 用户回复后,才调用脚本执行查询
### 意图识别与筛选
| 意图类型 | 特征 | 筛选侧重 |
|----------|------|----------|
| 泛浏览型 | 无明确目标,想看热门 | 全站热门数据 |
| 明确需求型 | 有具体目标/场景 | 意图匹配度优先 |
| 数据需求型 | 关注数据表现 | 互动数/阅读数优先 |
### 推荐理由要求
每条结果需包含 ≥15 字推荐理由,基于:
- 为什么符合用户意图
- 为什么数据表现好
- 内容有什么独特价值
### 细分引导
展示完爆款数据后,**必须主动给出 10 个可继续深挖的细分赛道词**,引导下一轮查询。
### 直接输出文字数据
趋势查询完成后直接输出文字格式(标题、链接、公众号、时间、互动数据),不再生成 HTML 文件。
---
## Cookie 配置(模式二需要)
1. 登录 https://mp.weixin.qq.com
2. F12 → Network → 刷新页面 → 点击任一请求 → Headers → 复制 Cookie
3. 保存到:`scripts/skill.env`(格式:每个 cookie key=value 单独一行)
> Cookie 会过期,失效后重新获取。
---
## 局限性
- **模式二**:微信 list_ex API 只返回约 436 篇最新文章,更早的历史无法翻到
- **模式四**:数据来自第三方聚合,非微信官方,可能有少量延迟don't have the plugin yet? install it then click "run inline in claude" again.