加载中...

为了更新个人博客,我要写一个公众号同步程序

  • 2025-08-06
  • Web开发
  • unity教程 游戏开发
  • --

书接上回,话说前两天我上线了自己的博客站,是一个基于Astro写的静态博客,页面风格偏向于苹果的Liquid Glass风格,有点个性,可以看看我上一篇文正《我的Liquid Glass主题博客改版上线了》。

本来计划是把博客作为一个内容备份中心,主要同步自己的公众号文章,同时写一些零碎的内容。

写一个公众号同步助手

最开始我是手动更新的,复制粘贴了几篇过去。操作几次之后发现,这种方式真的有点费劲儿,效率极低。于是我就写了一个公众号同步助手,帮我把公众号的内容自动同步到博客站上。

现在还是一个半成品,但我还是想分享一下开发思路,一方面是做个记录,另一方面也想着万一有高手指点一二呢。好了,首先得把想法变成理论,然后有理论才能实践。

问题的关键是:怎么获取公众号的文章列表?目前,公众号并没有提供一个公开页面能直接列出所有文章,所以只能另寻他路。

官方文档

一开始我想到的是看有没有官方 API 可用,查了一下文档,居然还真有一个叫“获取已发布的消息列表”的接口。

我兴奋地写了个 demo 试了下,结果死活拿不到数据。后来仔细一看才发现,这个接口只对企业主体且已认证的公众号开放 ,个人号不在服务范围内——无语死了,白高兴一场。

后台页面接口

既然官方 API 不行,那就只能“曲线救国”。网上查了一圈资料,发现有一种方式可以从公众号后台的页面接口拿到数据。它的原理是模拟后台请求,需要获取一些认证信息,比如 fingerprint、token 和 cookie,然后手动拼装请求链接,就可以拿到文章列表了。

当然,这种方式也有很多限制,比如需要登录、token 会过期、cookie 会失效、甚至要频繁手动更新这些参数……但好在,这个工具只是我自己用,所以够用了。

拿到文章列表后,下一步就是解析数据,把文章标题、作者、发布日期等字段提取出来。至于正文内容,则是通过文章链接访问详情页,再解析页面内容。

数据抓取完成后,我会把内容保存到本地,然后一键生成 Markdown 文件。因为我的博客内容是托管在 GitHub 上的,只要把 Markdown 文件 push 上去,Netlify 就会自动构建并部署,博客就完成更新了。

整体流程

整个流程大概是这样的:

流程还挺丝滑的。目前,我已经把最难的部分——文章列表接口的获取 搞定了,成功拿到了数据,并且已经写了一个简单的管理页面用来查看和处理文章内容。

接下来要做的就是把文章内容转成 Markdown 格式。这一步其实也不简单,因为原始文章是 HTML 格式的,转 Markdown 需要设定一套合理的转换规则,还要处理样式、图片、引用等等问题,这块还得仔细琢磨。

OK,今天就先写到这儿。后面进展顺利的话,我再来跟大家更新一波。

Maple
Maple
© 2025 by Maplezz 本文基于 CC BY-NC-SA 4.0 许可 CC 协议 必须注明创作者 仅允许将作品用于非商业用途 改编作品必须遵循相同条款进行共享 最后更新:2025/8/7