微信公众号内容采集方案

这个仓库里的公众号文章不适合再依赖 curl 直抓作为唯一方案,因为微信很容易返回:

  • 环境异常
  • 去验证
  • 未知错误
  • 暂无权限查看此页面内容

这不是 Markdown 或 Obsidian 的问题,而是源站获取阶段被微信风控拦住了。

推荐工作流

方案 A:先自动抓

适用于微信暂时没有触发验证时:

python scripts\fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxx"

输出目录默认在:

sources/wechat/<article-id>/

会生成:

  • raw.html
  • article.md
  • meta.json

方案 B:命中验证后,最小人工介入

如果脚本输出 status: verification_required,就不要继续硬抓了,直接切到下面流程:

  1. 在你常用浏览器里打开公众号链接
  2. 完成微信验证
  3. 页面打开后,保存为本地 HTML
  4. 再执行:
python scripts\fetch_wechat_article.py --html-file "D:\path\to\saved.html" "https://mp.weixin.qq.com/s/xxxx"

这样正文提取、Markdown 转换、归档命名仍然是自动的,人工只需要做一次验证和保存页面。

为什么这样更稳

  • 微信验证是动态策略,直抓不稳定
  • 本地快照可以复核,不需要反复访问源站
  • 适合当前库的“证据留存 + 周报写作”工作流

如果你能从浏览器里拿到有效 Cookie,可以尝试:

python scripts\fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxx" --cookie "wxuin=...; pass_ticket=...; ..."

这有时能提升直抓成功率,但不能保证稳定,仍然建议保留“本地 HTML 快照”作为兜底方案。

输出说明

meta.json 会记录:

  • 原始链接
  • 提取状态
  • 标题
  • 公众号名称
  • 发布时间
  • 是否需要人工验证

article.md 是后续写摘要、做引用、纳入周报的首选输入。