Skill: one2agi/wechat-article-grab (version 0.1.0)

--- 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 篇最新文章，更早的历史无法翻到 - **模式四**：数据来自第三方聚合，非微信官方，可能有少量延迟


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