Skip to content

xianyu564/scrape-my-wechat-official-account

🚀 微信公众号文章备份工具

专业的微信公众号文章抓取和备份解决方案,**深入结合个人信息学、人机交互与作者反思,**支持图片本地化、多格式输出、断点续传等功能

本仓库同时包含两大部分:

  • 备份工具代码(可复用抓取任意公众号已发文)
  • 已完整备份的个人公众号《文不加点的张衔瑜》全文语料(可直接阅读、研究与再训练)

🔗 快速链接(内容直达)

🎯 本工具专为《文不加点的张衔瑜》个人公众号设计

📚 关于个人公众号(文不加点的张衔瑜)

  • 定位:个人日记型公众号,记录日常生活、旅行见闻、思想火花与社会观察。
  • 时间跨度与规模:累计八年写作,已备份八十万字、近四百篇图文(见 Wechat-Backup/)。
  • 学术与兴趣背景:哲学博士,关注与涉猎 AI、计算化学、生物医药、周易等领域,探索科技与哲学的边界(已在公众号完成个人职业兴趣认证)。
  • 组织方式:按年份/日期自动归档;每篇含 HTMLMarkdownimages/meta.json,便于阅读、复用与研究。
  • 使用目的:为自我存档、长期复盘、社会现场的自反式研究,以及后续的语料分析与个性化对话模型提供高质量素材。

📦 仓库结构速览(代码 + 已备份语料)

💭 项目动机

🎁《文不加点的张衔瑜》的诞生 🎁

这是我成年当天的礼物

📚 八年公众号写作历程

  • 累计创作了八十万字、近400篇图文,记录人生各个阶段的思考
  • 涵盖生活日志、旅行笔记、社会评论等多元内容

⏰ 时间节点的巧合与遗憾

原本计划通过官方渠道进行备份,于是我自己写作了 @xianyu564/wechat_official_backup 项目。 然而,微信官方在 2025年7月 停用了关键的 freepublishGetarticle 接口(/cgi-bin/freepublish/getarticle), 这个时间点恰好比我开始备份的想法早了一个月

🛠️ 解决方案的诞生

面对官方接口的停用,我开发了这个替代方案,通过模拟浏览器行为来获取已发布文章,

📋 目录

✨ 功能特性

🔍 智能抓取

自动抓取微信公众号已发布文章,支持分页获取和智能去重。

📁 智能组织

按年份自动组织备份文件结构,便于管理和查找。

🖼️ 图片本地化

自动下载并本地化图片资源,确保备份完整性。

📝 多格式输出

支持HTML和Markdown格式输出,满足不同使用需求。

📚 已备份语料库

仓库内已自带《文不加点的张衔瑜》多年完整备份,可直接检索/分析/引用。

🤖 语料再分析与AI再训练

支持学术级词频/年度/主题分析与词云可视化,符合WWW/SIGIR等顶会标准,及基于个人语料的对话模型再训练。

⚡ 性能优化

可配置的抓取速度和分页大小,平衡效率与稳定性。

🚀 快速开始

📥 1. 克隆仓库

获取项目代码到本地,开始你的备份之旅

📦 2. 安装依赖

安装Python依赖包,为工具运行做好准备

⚙️ 3. 配置环境

设置Cookie和Token,让工具能够访问你的公众号

🚀 4. 运行脚本

开始备份文章,让每一篇文字都得到妥善保存

详细步骤

1. 克隆仓库

git clone https://github.com/xianyu564/scrape-my-wechat-official-account.git
cd scrape-my-wechat-official-account

2. 安装依赖

pip install -r requirements.txt

3. 配置环境

复制 env.json.EXAMPLEenv.json,填写配置信息

4. 运行脚本

cd script
python wx_publish_backup.py

🧭 复用者快速起步(Fork/Clone 即用)

面向想直接复用本工具的开发者:不改代码,配置好 env.json 即可跑通。

最小可运行示例

  1. 复制示例配置:
    • 将项目根目录下的 env.json.EXAMPLE 复制为 env.json
    • 至少填写三项:
{
  "WECHAT_ACCOUNT_NAME": "你的公众号名称",
  "COOKIE": "从浏览器开发者工具复制的Cookie",
  "TOKEN": "发表记录页URL中的token值"
}
  1. 运行(任选其一):
  • Windows PowerShell
py -3 script\wx_publish_backup.py
  • macOS / Linux(终端)
python3 script/wx_publish_backup.py
  1. 输出位置:
    • 文章会按年份落到 Wechat-Backup/<你的公众号名称>/YYYY/
    • 每篇文章目录包含:*.html*.mdmeta.jsonimages/

常见上手问题(超简版)

  • 403 或“预检失败”:Cookie/Token 过期 → 重新抓取
  • HTML 打开空白:用 python -m http.server 启动本地静态服务器后访问
  • 速度过快被限流:适当调大 SLEEP_LIST/SLEEP_ART/IMG_SLEEP

📦 安装依赖

pip install -r requirements.txt

说明:依赖详解见 requirements.txt

⚙️ 配置说明(简版)

  1. 复制 env.json.EXAMPLEenv.json
  2. 最少填写:WECHAT_ACCOUNT_NAMECOOKIETOKEN
  3. 可选调整:COUNTSLEEP_LISTSLEEP_ART 等速率参数

详细的 Cookie/Token 获取操作与截图:见 script/README.md 的“获取 Cookie 与 Token(简版)”。 完整参数说明与最佳实践:见 docs/TROUBLESHOOTING.mdscript/README.md

💻 使用方法

cd script
python wx_publish_backup.py

📁 输出结构

备份文件将保存在 Wechat-Backup/<微信公众号名称>/ 目录下:

Wechat-Backup/<微信公众号名称>/
├── 2025/
│ ├── 2025-08-26_文章标题1/
│ │ ├── 2025-08-26_文章标题1.html # 可双击离线打开
│ │ ├── 2025-08-26_文章标题1.md # 外链保留,适合 GitHub/Obsidian
│ │ ├── meta.json
│ │ └── images/
│ └── ...
└── _state.json # 已抓取链接指纹,供断点续传

数据指引(本仓库已含示例语料)

每篇文章目录包含:*.html*.mdmeta.jsonimages/。编年目录提供年度字数/图片合计与全局编号;主题合集按年份与类别重新组织,便于主题式阅读。

🧪 二次利用:语料再分析与 AI 再训练

📊 语言学分析与词云生成 (学术级实现)

本项目现已具备学术会议标准的语料分析系统,提供:

  • 🎨 高质量词云生成: 覆盖2017-2025全年份,支持中文显示,备份于 .github/assets/wordclouds/
  • 📈 科学级语言学分析: Zipf定律、Heaps定律、TF-IDF、词汇多样性等指标
  • 🔤 智能分词与N-gram: 支持中英混合文本,可变长度n-gram分析
  • 📋 自动化报告: 完整的数据驱动分析报告生成
  • 🎓 学术标准: 符合WWW/SIGIR/ICWSM等顶级会议要求的性能基准测试与质量评估

词云可视化示例

2024年词云 完整语料词云
左: 2024年度词云 | 右: 完整语料词云 (2017-2025)

快速开始分析:

cd analysis/
python main.py  # 完整分析 + 可视化

学术级功能:

# 性能基准测试 (符合学术会议标准)
python analysis/benchmark_wordcloud.py

# 高级可视化 (多种学术配色方案)
python analysis/enhanced_wordcloud_viz.py

# 质量评估 (自动学术标准评分)
python analysis/evaluation_metrics.py

自定义词云生成:

# 特定时间段 (如 2020.08-2024.12)
python analysis/generate_wordclouds.py --start-date 2020-08-01 --end-date 2024-12-31

# 特定年份
python analysis/generate_wordclouds.py --years 2020,2021,2022,2023,2024

详细文档:analysis/README.md | analysis/WORDCLOUD_GUIDE.md

🔍 语料浏览与研究起点

  • 从这里开始:Wechat-Backup/文不加点的张衔瑜/目录.md(编年浏览)或 合集.md(主题浏览)
  • 研究路线建议:见 docs/FUTURE_VISION.md(“先获得感 → 认知/成长挖掘 → 语义检索/RAG → 个性化模型”)
  • 管理与进展:见 STATUS.md(阶段性目标与完成度)

提示:若你希望进行词频/主题/年度分析,建议以 *.md 作为语料输入;若做版式与图片回看,使用 *.html 更直观。

🤝 贡献指南

我们欢迎所有形式的贡献!请查看 贡献指南 了解如何参与项目开发。

贡献方式

  • 🐛 报告Bug
  • 💡 提出新功能建议
  • 📝 改进文档
  • 🔧 提交代码修复
  • 🌟 给项目点星

📜 行为准则

本项目采用 贡献者公约 作为行为准则。我们致力于为每个人创造友好、包容的环境。

🔒 安全政策

如果您发现了安全漏洞,请查看 安全政策 了解如何私下报告。

重要:请不要在公开渠道中报告安全漏洞。

📄 许可证

本项目采用双重许可证:

⚠️ 注意事项

  • env.json 包含敏感信息,已添加到 .gitignore
  • 建议设置合理的抓取间隔,避免被限制访问
  • 备份目录会自动创建,无需手动创建
  • 请遵守微信公众平台的使用条款

📊 项目状态

  • 版本: 1.1.0
  • 状态: 活跃维护
  • Python版本: 3.9+

🔮 项目展望

本项目不仅是一个备份工具,更是个人知识资产的基础设施。基于仓库内已备份的八十万字、近四百篇个人文章,我们规划了以下发展方向:

🤖 个人AI对话模型

  • 利用个人写作风格和知识结构训练专属AI助手
  • 保持与作者一致的表达方式和思维模式
  • 传承个人在AI、计算化学、生物医药、周易等领域的知识

📊 语料分析与洞察

  • 词频分析和写作风格研究
  • 主题演化追踪和知识图谱构建
  • 为内容创作和学术研究提供数据支持

💡 了解更多:详细的项目展望请查看 STATUS.md

🧭 同时建议阅读研究计划:FUTURE_VISION.md。该计划以“先获得感(词频/年度/主题)→ 认知与成长挖掘(人物/地点/情绪/价值观)→ 语义检索/RAG → 个性化模型”的顺序推进,并强调“自反式个人社会现场研究”和“兴趣导向的任务编排”。

💝 赞助与支持

WeChat Sponsor Code
个人 微信赞助
SG PayNow Sponsor Code
个人 新加坡 PayNow
Start-up Company Sponsor Code
我创业的公司 赞助码

🔧 故障排除(更多见文档)

遇到“预检失败/403、空白HTML、限速、断点续传”等问题,请参考:

  • docs/TROUBLESHOOTING.md(完整指南)
  • script/README.md(平台命令对照与错误恢复速查)

已知问题与优化建议

  • 含空格/括号/特殊字符的路径已在目录中做 URL 编码处理(如空格→%20(%28)。
  • 本地直接打开 HTML 可能受浏览器策略限制,建议用 python -m http.server 启动静态服务器后访问。
  • Windows 路径大小写与编码请遵循仓库现状,避免自行改名导致链接失效。

📞 获取帮助

如果您需要帮助:

  1. 查看 故障排除指南 解决常见问题
  2. 查看 更新日志 了解最新变更
  3. 搜索现有 Issues
  4. 创建新的 Issue 描述问题

🙏 致谢

凡没有把我杀死的,都没有把我杀死。


文不加点的张衔瑜|公众号二维码
文不加点的张衔瑜

About

对我自己的微信公众号《文不加点的张衔瑜》进行历史消息爬虫

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 5