跳到主要内容

公众号文章下载

可调用节点 v2.1.0

微信公众号文章批量下载 | 支持单篇/批量/合集一键采集下载,保存为 HTML/Markdown/PDF/Word/纯文本,自动下载配图,可选下载视频与音频,自动识别验证码页防封禁

脚本能力

直接启动支持 右键启动支持 快捷键启动支持 超级复制启动不支持 定时任务不支持 可被其他脚本调用是 依赖其他脚本否 图形化启动界面支持

把微信公众号文章(单篇 / 批量 / 合集)一键保存到本地,支持 HTML / Markdown / 纯文本 / PDF / Word,自动下载配图,可选下载视频与音频。抓取自动识别验证码页并退避重试,省心防封。


核心特性

  • 多格式保存:HTML(原样式,图片 base64 内嵌,离线可看、转发不丢图)、Markdown(YAML frontmatter + 本地相对图片,Obsidian 友好)、纯文本、PDF(Edge 无头打印)、Word(.docx)
  • 合集批量下载:粘贴合集链接(含 __biz 与 album_id)自动分页拉全,逐篇落盘并生成 index.md 目录
  • 链接清单批量:粘贴一段含链接的文字、每行一个 URL,或提供 .txt 链接清单文件均可
  • 配图 + 音视频:正文图片自动下载(规避「此图片来自微信公众平台」占位图),可选下载文章内视频(最高清)与音频
  • 防验证码 / 防封:识别验证码页与已删除死链,指数退避重试;请求间隔带随机抖动
  • 按公众号归档:公众号/日期_标题/ 目录结构,同标题自动加序号不覆盖
  • 触发灵活:盒子卡片、快捷键、资源管理器右键背景均可启动

脚本演示

公众号文章下载演示


安装方法

本脚本的运行环境、依赖组件及图形化窗口均依赖"不忙脚本盒子",建议仅通过盒子安装和使用本脚本。

前置条件:安装好 不忙脚本盒子

  • 打开盒子 → 脚本市场 → 搜索 「公众号文章下载」
  • 点击「安装」

使用方式

启动后会弹出设置窗口,填好链接与选项,点「执行」即可。

  • 卡片运行
    • 在盒子里点击脚本卡片,弹出启动窗口
    • 在「文章链接」框粘贴链接(每行一条,或一整段含链接的文字,或一个合集链接)
    • 选择保存格式与选项,点「执行」
  • 右键启动
    • 在文件夹空白处右键 → 选择「公众号文章下载」
    • 弹出启动窗口,粘贴链接后点「执行」
  • 快捷键启动
    • 为脚本设置全局快捷键(盒子「热键管理」页),按下快捷键后填写链接执行

参数说明

参数 说明
文章链接 每行一条文章/合集链接,或粘贴含链接的文字,也支持 .txt 链接清单文件路径
保存位置 留空则保存到系统下载目录「公众号文章下载」
保存格式 下拉框单选:网页 HTML / Markdown / 纯文本 / PDF / Word
下载视频 下载文章内视频(最高清,存到 media 子目录)
下载音频 下载文章内音频(存到 media 子目录)
下载间隔(秒) 每篇之间的请求间隔(含随机抖动,防限流)

文章配图、每篇单独子文件夹、HTML 图片内嵌均默认开启,无需配置。


💡 使用提示

  • PDF 依赖系统 Edge:未检测到 Edge 时会提示改装 Edge,或换其他格式
  • 合集链接:形如 https://mp.weixin.qq.com/mp/appmsgalbum?__biz=xx==&album_id=NNN(含 __biz 与 album_id)会自动进入合集模式
  • 链接被验证码拦截:脚本会自动退避重试;仍失败会单独报错并继续下一篇
  • 视频号 / 腾讯视频:无法免证书下载,Markdown/HTML 里会留占位说明
  • 批量下载建议间隔 ≥1.5 秒,避免被限流

输出目录结构

公众号文章下载/
├── <公众号>/<YYYY-MM-DD>_<标题>/
│   ├── <标题>.md / .html / .pdf / .txt / .docx
│   ├── assets/      # 正文图片
│   └── media/       # 视频、音频(开启时)
└── <公众号>/合集_<合集名>/
    ├── index.md     # 合集目录
    └── 01_<标题>/ ... 02_<标题>/ ...

🖥️ 环境要求

项目 要求
操作系统 Windows 10+(64 位)
运行环境 Python 3.8+(盒子自动安装)、Edge/Chrome(PDF 格式需要)

节点脚本(开发者阅读)

本脚本声明为节点,可被其他脚本通过盒子 /api/link 联动调用(无人值守,不弹窗口)。调用方需在请求里传 data.links_text(文章/合集链接数组)与 params。

curl -X POST http://127.0.0.1:9527/api/link \
  -H "Content-Type: application/json" \
  -d '{
    "script_id": "28a9b661-148e-4b4e-bf61-b79586f84566",
    "data": { "links_text": ["https://mp.weixin.qq.com/s/xxxx"] },
    "params": { "format": "md", "delay": 1.5 }
  }'

返回的业务键(信封顶层):

键 类型 说明
output_dir str 本次下载的保存根目录绝对路径
ok str 成功下载的链接数
fail str 下载失败的链接数

code = 0 表示有文章成功下载;全部失败时 code = 1。


📄 开源许可

本脚本的抓取健壮性(验证码识别/URL 规范化/合集分页)、图片防坑、音视频抽取与下载、Markdown frontmatter 导出等能力,部分适配自 Echo-wechat-skill(MIT License)。感谢原作者开源。

评论