wechat-article-exporter

应用程序

wechat-article/wechat-article-exporter

在线批量下载微信公众号文章并导出数据。

项目简介

一款基于 Web 的微信公众号文章批量下载工具,支持导出阅读量与评论数据,HTML 格式可 100% 还原排版。支持在线使用、Docker 私有化部署和 Cloudflare 部署。

README 预览

\n  \n\n\n# wechat-article-exporter\n\n![GitHub stars]\n![GitHub forks]\n![GitHub License]\n![Package Version]\n\n\n一款在线的 **微信公众号文章批量下载** 工具,支持导出阅读量与评论数据,无需搭建任何环境,可通过 [在线网站] 使用,同时也支持 docker 私有化部署和 Cloudflare 部署。\n\n支持下载各种文件格式,其中 HTML 格式可100%还原文章排版与样式。\n\n交流群(QQ):\n- `991482155` 1群已满\n- `775909845` 2群\n- `814249342` 3群\n\n## :bell: 重要告知:项目域名调整\n项目域名调整如下:\n\n|     | 下载站                            | 文档站                        |\n|-----|--------------------------------|----------------------------|\n| 调整后 | https://down.mptext.top        | https://docs.mptext.top    |\n| 调整前 | https://exporter.wxdown.online | https://docs.wxdown.online |\n\n具体细节可以查看 [这里](https://docs.mptext.top/misc/domain.html)。\n\n\n## :books: 如何使用?\n\n该工具的使用教程已移至 [文档站点](https://docs.mptext.top)。\n\n\n## :dart: 特性\n\n- [x] 搜索公众号,支持关键字搜索\n- [x] 支持导出 html/json/excel/txt/md/docx 格式(html 格式打包了图片和样式文件,能够保证100%还原文章样式)\n- [x] 缓存文章列表数据,减少接口请求次数\n- [x] 支持文章过滤,包括作者、标题、发布时间、原创标识、所属合集等\n- [x] 支持合集下载\n- [x] 支持图片分享消息\n- [x] 支持视频分享消息\n- [x] 支持导出评论、评论回复、阅读量、转发量等数据 (需要抓包获取 credentials 信息,[查看操作步骤](https://docs.mptext.top/advanced/wxdown-service.html))\n- [x] 支持 Docker 部署\n- [x] 支持 Cloudflare 部署\n- [x] 开放 API 接口\n\n\n## :heart: 感谢\n\n- 感谢 [Deno Deploy]、[Cloudflare Workers] 提供免费托管服务\n- 感谢 [WeChat_Article] 项目提供原理思路\n\n\n## :star: 支持\n\n如果你觉得本项目帮助到了你,请给作者一个免费的 Star,感谢你的支持!\n\n\n## :bulb: 原理\n\n在公众号后台写文章时支持搜索其他公众号的文章功能,以此来实现抓取指定公众号所有文章的目的。\n\n\n## :memo: 许可\n\nMIT\n\n## :red_circle: 声明\n\n本程序承诺,不会利用您扫码登录的公众号进行任何形式的私有爬虫,也就是说不存在把你的账号作为公共账号为别人爬取文章的行为,也不存在类似账号池的东西。\n\n您的公众号只会服务于您自己的抓取文章的目的。\n\n通过本程序获取的公众号文章内容,版权归文章原作者所有,请合理使用。若发现侵权行为,请联系我们处理。\n\n\n## :chart_with_upwards_trend: Star 历史\n\n[![Star History Chart]][Star History Chart Link]\n\n\n\n\n\n[GitHub stars]: https://img.shields.io/github/stars/wechat-article/wechat-article-exporter?style=social&label=Star&style=plastic\n\n[GitHub forks]: https://img.shields.io/github/forks/wechat-article/wechat-article-exporter?style=social&label=Fork&style=plastic\n\n[GitHub License]: http

常见问题 (3)

故障排除
如何防止 Turndown 在导出的 Markdown 中包含 CSS 样式和 SVG 图标?

当未配置的 Turndown 服务转换完整的 HTML 文档时,会出现此问题。虽然 <head> 标签会被丢弃,但其子节点 <style> 和 <title> 在解析后仍然保留,并以原始文本形式输出,导致 CSS 代码出现在开头。类似地,底部操作栏(Read/Like/Share)会在末尾被转换为大型的内联 data URI SVG。要解决此问题,请在转换前显式移除这些节点,或配置 Turndown 规则:

const turndownService = new TurndownService();
turndownService.remove(['style', 'title']);
turndownService.remove('.bottom-bar'); // Replace with the actual action bar selector
const markdown = turndownService.turndown(html);

或者,更新到包含统一的 shared/utils/markdown.ts 工具类的版本,该工具类会自动过滤掉这些非内容元素。

来源 Issue #138
配置
如何让导出的文章文件名包含发布日期?

在合集/专辑详情页使用 Markdown 批量导出选项。导出器会自动为每个文件名添加 yyyy-MM-dd 格式的发布日期前缀,生成类似 2024-05-20 Article title.md 的文件名。您无需手动设置单独的时间变量。文件名格式化功能在 utils/download/album-format.ts 中实现。HTML 离线导出仍可作为替代格式使用。

来源 Issue #166
故障排除
如何修复 Markdown 导出内容以 CSS 代码开头、夹杂广告或 action-bar 垃圾信息且不转换表格的问题?

升级到包含共享 utils/markdown.ts 变更的修复版本。出现该问题的原因是,导出器将 renderHTMLFromCgiDataNew() 返回的完整 HTML 文档传递给了未经配置的 Turndown 实例。尽管 <head> 已被丢弃,但 <style> 和 <title> 节点被保留了下来,其中的 CSS/文本被输出到了 .md 文件的顶部;WeChat 底部操作栏也被转换了,包括大型内联 SVG data URI。

修复方法:
1. 将服务更新/重新部署到包含 Markdown 导出修复的版本。
2. 仅转换文章 HTML,而不是完整文档。
3. 配置 Turndown,使其在转换前移除 style、title、script、广告、工具栏和底部操作节点。
4. 启用 GitHub 风格的 Markdown 表格支持,例如使用 turndown-plugin-gfm。
5. 使用 format=markdown 重新请求导出 URL。

对于自托管部署,请更新代码、重新安装依赖、重新构建、重启服务,然后重试下载。如果无法立即升级,请使用 format=html 作为临时离线存档,以替代损坏的 Markdown 输出。

来源 Issue #167