Agent Skills
返回列表
公众号多图转PDF

公众号多图转PDF

数据分析 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_cce12b87/wechat-to-pdf。

技能介绍

问题:微信长图内容难以归档

微信公众号文章的正文常是一整张长图或书页扫描图。想把它们存成 PDF 会撞上两个坑:一是微信反爬——用普通浏览器 UA 请求会被 verify.js 拦截,返回 17KB 验证页而非正文;二是提取文字不难,但保留图片排版、按章节目录批量处理很难做好。本技能只做一件事:把正文图片按序抓下来拼成 PDF,不提取文字。

工作原理

核心抓取策略:UA 必须用微信内置浏览器(MicroMessenger)。图片取 js_content 容器内 <img> 的 data-src(不是 src),域名严格匹配 mmbiz.qpic.cn 全域名,否则会混入 res.wx.qq.com 的 JS 引用导致下载失败。

两种使用模式:

  • 单篇:给一个 mp.weixin.qq.com/s/ 链接,抓图合成 PDF。文件名优先用 --name,其次文章标题(自动清洗“(章节目录索引)”这类后缀),最后用链接标识兜底。
  • 批量:给一个目录索引页,解析全部章节链接并按 (mid, idx, sn) 去重;--scope 可按“第一章”等关键词过滤;自动推导两级文件夹,文件按目录条目标题命名,完成后生成 _report.txt 核对报告。

针对实测踩坑的兜底逻辑:

  • 正文由 JS 动态渲染、无静态 js_content 容器时,回退从脚本数据里的 cdn_url 字段提取图片,并排除封面与头像
  • 广告、小程序卡片、音视频组件(class 含 mp-common、qqmusic 等特征)整块切除
  • webp 图片先经 Pillow 转 png 再交给 img2pdf
  • 限速:图片间 sleep 0.4、文章间 sleep 1.5,避免频控封 IP

自检机制:抓取失败按 5 套 UA/请求头策略池自动换组合重试并诊断原因(反爬、链接失效、网络错误、内容异常);每篇合成后用 pypdf 校验可打开且页数 > 0;批量跑完对失败项自动重试一轮;--skip-existing 支持断点续传。

适用边界

  • 只转图片,不提取文字:图文混排文章的纯文字段落不会进 PDF,适合书页扫描、长图类内容
  • 只处理微信公众号文章链接,触发基于“公众号图片内容 → PDF”的能力意图
  • 小于 5KB 或宽度小于 200px 的无关小图会被过滤,正常书页不会误杀
  • 链接须含 __biz/mid/idx/sn 参数才能定位文章

使用场景

  • 自媒体运营要把公众号上的书页长图文章保存为PDF存档
  • 内容团队要从目录页批量抓取全部章节图片合成PDF
  • 移动开发者需要绕过微信内置浏览器UA验证抓取正文图片
  • 数据标注人员要把公众号纯图片内容转成PDF方便标注查阅

适合人员

  • 内容归档运营:定期保存公众号图文成PDF入库
  • 微信工具开发者:需要解决反爬UA和图片域名白名单问题
  • 自媒体作者:想把长图类文章统一转PDF便于分发
  • 数据标注工程师:处理图片型内容需要PDF格式的标注材料