简介什么是 WeChat Article Exporter?

wechat-article-exporter 是一个在线微信公众号文章批量下载工具。它支持批量下载微信公众号文章,并支持导出阅读量、评论等数据。导出的格式多样,包括 HTML、JSON、Excel、TXT、MD、DOCX 等,其中 HTML 格式能 100% 还原文章排版与样式。

主要特点

批量下载:用户可以一次性下载多个微信公众号的文章,极大提高了下载的效率。

多格式导出:支持导出为 HTML,JSON,Excel,TXT,MD,DOCX 等多种文件格式。

样式还原:HTML 格式可 100% 还原原始文章的排版与样式。

数据全面:支持导出文章的阅读量、评论等扩展数据。

功能丰富:提供公众号搜索、文章过滤、合集下载等实用功能。

开放 API:提供 API 接口,方便开发者进行二次开发和集成。

部署灵活:无需搭建环境,直接使用官方在线网站,同时也支持 Docker 进行私有化部署。

应用场景

个人用户备份、归档自己喜欢的公众号文章,防止文章被删除。

内容创作者或市场研究人员进行竞品分析,如分析文章阅读量和评论数据。

将微信文章转换为其他格式,方便在不同的平台(如博客、知识库)进行二次编辑和分享。

wechat-article-exporter 是一款功能强大的工具,满足用户对微信公众账号文章批量下载的需求,并提供多种导出格式和数据统计功能,非常适合希望高效管理和分析微信公众号内容的用户。

准备本项目的部署需要有一定的动手能力,不明白的地方多看看官方文档

注册一个微信公众号前往微信公众平台:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN 进行注册,公众号(原订阅号)和服务号皆可

反向代理如果使用 http 协议,软件登录公众号的二维码会刷不出来

是否公网地址无所谓,只要 https 协议即可,所以老苏用的是 tailscale + npm

假设实际访问地址为: https://wae.laosu.tech

域名

局域网地址

备注

wae.laosu.tech

http://192.168.0.197:3199

wechat-article-exporter 的访问地址

在 npm 中的设置

SSL 都勾选了

搭建私有代理节点虽然官方提供了公共代理节点,但是用的人太多,很容易达到容量或者次数的限制,而导致抓取失败。所以虽然这一步不是必须的,但老苏还是建议你最好自己搭一个

官方文档提供了在 Cloudflare Workers 或 Deno Deploy 等 Serverless 平台进行部署的方法,这里以 Cloudflare Workers 为例。

简要步骤如下:

登录到您的 Cloudflare 控制台。

在菜单中找到并进入 Workers & Pages。

创建一个新的 Worker 服务。

进入新创建的 Worker,点击“编辑代码”。

从官方文档:https://docs.wxdown.online/get-started/private-proxy.html 页面复制 Cloudflare Workers 版本的节点代码。

将代码粘贴到 Cloudflare 的代码编辑器中。

点击“部署”或“保存并部署”。

部署成功后,您的 Worker URL 就是您的私有代理地址。之后您可以在 wechat-article-exporter 的设置中填入这个地址。

安装在群晖上以 Docker 方式安装。

如果你熟悉命令行,可能用 docker cli 更快捷

12345678910111213141516# 新建文件夹 wechat-article 和 子目录mkdir -p /volume1/docker/wechat-article/data# 进入 wechat-article 目录cd /volume1/docker/wechat-article# 修改目录权限chmod a+rw data# 运行容器docker run -d \ --restart unless-stopped \ --name wechat-article-exporter \ -p 3199:3000 \ -v $(pwd)/data:/app/.data \ ghcr.io/wechat-article/wechat-article-exporter:latest

运行部署成功后,在浏览器中输入反代后的地址 https://wae.laosu.tech 即可访问并开始使用。

用微信扫码登录后,左下角有公众号的信息

点 公众号管理 –> 添加

输入公众号名称,选中后添加,然后同步

进入文章下载,抓取之后,就可以导出了

进阶wechat-article-exporter 所有的数据都保存在浏览器的 indexedDB 中,当运行一段时间后,你会发现数据膨胀的比较大,主要是 html 表中保存了文章的全文

用 AI 写了一段脚本,可以帮我们清理 html 表,但会继续保留表结构

123456789101112131415161718192021222324252627282930313233343536373839404142434445// 清空 html 表,释放空间(async function() { try { const dbName = 'exporter.wxdown.online'; const request = indexedDB.open(dbName); request.onsuccess = async function(event) { const db = event.target.result; // 先统计数据 const tx = db.transaction(['html'], 'readonly'); const store = tx.objectStore('html'); const countRequest = store.count(); countRequest.onsuccess = function() { const count = countRequest.result; console.log(`📊 html 表当前有 ${count} 条记录`); // 清空数据 const clearTx = db.transaction(['html'], 'readwrite'); const clearStore = clearTx.objectStore('html'); const clearRequest = clearStore.clear(); clearRequest.onsuccess = function() { console.log('✅ html 表已清空!'); console.log('💾 已释放浏览器存储空间'); // 估算释放的空间(每条记录平均约 100KB) const estimatedMB = (count * 100 / 1024).toFixed(2); console.log(`📉 预估释放空间: ~${estimatedMB} MB`); }; clearRequest.onerror = function() { console.error('❌ 清空失败:', clearRequest.error); }; }; }; request.onerror = function() { console.error('❌ 打开数据库失败:', request.error); }; } catch (error) { console.error('❌ 执行出错:', error); }})();

⚠️ 注意事项,删除后:

文章列表仍正常显示

无法离线查看 HTML 内容

需要重新下载才能导出 HTML 格式

参考文档

wechat-article/wechat-article-exporter: 一个在线的微信公众号文章下载工具,支持下载阅读量与评论数据,支持私有化部署地址:https://github.com/wechat-article/wechat-article-exporter

公众号文章下载地址:https://docs.wxdown.online/