微信公众号文章提取器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_e7edb73a/wechat-article-extractor-gezihan2008。
技能介绍
问题
微信公众号文章通常只能在手机上或网页里逐篇阅读,想离线保存、归档或作为语料处理时,手动复制很容易丢图、丢段落、丢列表结构;直接保存原始 HTML 又会带入脚本、追踪代码和一堆无关节点。这个技能要解决的是:把一篇公开可访问的公众号文章稳定地变成本地 Markdown,尽量保留正文里的标题、段落、列表、图片等有用结构,并按需得到一张经过清理的 HTML 或一组可离线引用的图片。
工作原理
输入一个公开的 https://mp.weixin.qq.com/s/... 链接后,内置脚本会一次完成校验、抓取和落地:
- URL 校验:只接受 HTTPS、主机为
mp.weixin.qq.com、路径以/s/开头的文章地址;图片也只从经过批准的微信 CDN 主机下载。 - 正文定位:从页面中寻找
#js_content节点作为正文容器;找不到时停止并说明无法取得公开正文,正文异常短时返回结果但附带截断警告。 - Markdown 生成:Markdown 是默认产物,保留文章结构;
--html可额外生成带 Content Security Policy 的清理版 HTML,--no-img则保留批准的远程图片 URL 而不下载图片。 - 图片处理:图片校验或下载失败不会中断正文,只会在结果中报告被跳过的图片;下载成功后用本地
images/...引用替代远端地址。 - 状态返回:通过结构化 JSON 返回
success、partial、blocked、exists、error,Agent 调用默认启用--json。success报告路径、标题、公众号、发布时间和图片数;partial报告全部 warnings 并说明正文可能不完整;blocked停止且不绕过任何限制;error依据invalid_url、network_error或extraction_error说明原因。 - 防覆盖与单次执行:除非用户明确要求替换并使用
--overwrite,已有输出会触发保护并保持不变。一次 Skill 或斜杠命令调用只执行一次提取,成功后报告结果并停止,不在同一任务里手动重跑相同 URL 和输出目录。
适用边界与注意点
它只处理公开文章,不会绕过登录、付费墙或“阅读全文”后的隐藏内容;也不接受本地文件、任意网站或仅登录可见页面。除用户另行调用并授权外,不得把提取结果发布到外部服务。临时超时、HTTP 429 和 5xx 最多额外重试两次,对 403、404、安全策略拒绝、跳转越界、超大响应或无效格式不做循环重试。最后,partial 的退出码是 0,但文件可用不代表可以忽略警告;提取后应确认 Markdown 非空、本地图片引用能解析,且请求 HTML 时文件包含 Content Security Policy。
使用场景
- 内容团队需要把公开公众号文章保存为本地 Markdown,保留标题、列表和图片,方便离线检索。
- 数据分析师准备语料时,要从公开文章提取正文、公众号、发布时间和图片数,并生成结构化 JSON。
- 知识库编辑要提供只读版网页,希望同时得到带 Content Security Policy 的 HTML 和本地图片。
- 写作者整理微信素材做二次创作,需要把公开文章落成 Markdown,并让图片使用本地引用。
适合人员
- 内容运营与编辑,定期整理公开公众号选题,需要离线留存正文和图片。
- 数据分析师,研究公开文章的传播与关键词,需要干净文本和元数据。
- 构建文档管线的工程师,希望用脚本化提取公开文章并按 JSON 状态处理异常。
- 研究助理和档案员,长期保存公开网页资料,关注结构保留与 HTML 安全策略。