前言¶
给微信生态做内容采集或归档时,绕不开一个老问题:公众号文章的页面结构随时在变,正文、作者、发布时间、封面散在 HTML 各处,账号资料和互动数据又分散在不同接口里。自己写解析脚本,意味着长期跟页面改版和反爬策略对抗。这个 Skill 把常见场景打包成一次调用,直接返回结构化结果,省去维护脚本的成本。下面介绍它。
这是什么¶
「公众号文章解析」是一个面向大模型 Agent 的 Skill,坐标为 @clawhub_freestylefly/wechat-article-extractor-skill,由 freestylefly 发布并维护,上游仓库托管在 ClawHub。SkillHub 页面将其归入 data-analysis 分类,显示评分 99091、下载 3052 次。它解决的问题是:给定一个 mp.weixin.qq.com 链接,提取文章元数据和正文,并按需拉取账号信息,返回统一结构。
核心功能¶
下面列出从官方说明中核实到的能力。
- 解析微信公众号文章链接,识别六种内容类型:图文 post、视频 video、图片 image、语音 voice、纯文本 text、转载 repost。
- 提取文章元数据:标题、摘要、作者、封面图、发布时间、原文链接、消息 ID 等。
- 提取账号信息:公众号名称、微信号别名、头像、功能介绍、原始 ID、biz 参数。
- 支持直接传入已抓取的 HTML,而不是必须传链接。
- 处理常见异常:文章被删除、链接过期、访问受限、账号迁移、违规屏蔽等,每类对应明确的错误码。
安装与启用¶
上游 ClawHub 页面提供的安装方式是命令行安装。打开终端执行:
npx skills add @freestylefly/wechat-article-extractor-skill
或使用 OpenClaw 生态的安装命令:
openclaw skills install @freestylefly/wechat-article-extractor-skill
启用方式是将 Skill 挂载到 Agent 的配置中,让它在收到微信文章链接时自动触发。Skill 不需要 API Key,标签 requires_api_key=false 已确认。需要先安装依赖:
npm install cheerio dayjs request-promise qs lodash.unescape
其中 cheerio 负责 HTML 解析,dayjs 负责时间格式化,request-promise 负责请求,qs 负责查询串,lodash.unescape 负责 HTML 实体还原。
典型用法¶
最基础的用法是传入链接直接提取:
const { extract } = require('./scripts/extract.js');
const result = await extract('https://mp.weixin.qq.com/s?__biz=...');
返回结构如下,字段按账号信息、文章信息、链接参数三组给出:
{
done: true,
code: 0,
data: {
account_name: "公众号名称",
account_alias: "微信号",
msg_title: "文章标题",
msg_desc: "文章摘要",
msg_content: "HTML内容",
msg_cover: "封面图URL",
msg_author: "作者",
msg_type: "post",
msg_publish_time: Date,
msg_link: "文章链接",
msg_sn: "sn参数"
}
}
如果手头已有页面 HTML,可以跳过链接请求:
const html = await fetch(url).then(r => r.text());
const result = await extract(html, { url: sourceUrl });
还可以按需裁剪返回内容,通过 options 控制:
const result = await extract(url, {
shouldReturnContent: true,
shouldReturnRawMeta: false,
shouldFollowTransferLink: true,
shouldExtractMpLinks: false,
shouldExtractTags: false,
shouldExtractRepostMeta: false
});
各选项含义:shouldReturnContent 控制是否返回正文 HTML,默认 true;shouldFollowTransferLink 控制是否跟随账号迁移后的链接,默认 true;shouldExtractMpLinks 控制是否提取文中内嵌的公众号链接;shouldExtractTags 控制是否提取文章标签;shouldExtractRepostMeta 控制是否提取转载来源信息。
适用场景与注意¶
适合做公众号内容归档、素材库建设、账号信息采集、历史文章结构化入库的场景。调用方拿到的是统一 JSON,不需要自己写正则。
使用前注意三点。一是错误处理要按错误码来做,官方列出的错误码覆盖了删除、过期、违规、迁移、屏蔽等十余种情况,调用方应至少处理 2002 链接过期、2003 侵权删除、2005 作者删除这几类。二是部分字段可能为空,取决于文章类型和页面结构,例如语音类文章可能没有封面,视频类文章正文可能只有播放器。三是该 Skill 基于 ClawHub 上游发布,安装命令和依赖清单以上游页面为准;SkillHub 页面信息以官方地址为准,两者在版本号和下载量统计上可能不一致。
结尾¶
这个 Skill 的价值在于把公众号解析这件易碎的事变成一次调用:不用维护页面解析逻辑,不用处理反爬细节,拿到结构化结果后直接入库或二次处理。官方地址:https://api.skillhub.cn/zhaopintong/wechat-article-extractor-skill,上游仓库:https://clawhub.ai/freestylefly/wechat-article-extractor-skill。