微信公众号内容采集方案
这个仓库里的公众号文章不适合再依赖 curl 直抓作为唯一方案,因为微信很容易返回:
- 环境异常
- 去验证
- 未知错误
- 暂无权限查看此页面内容
这不是 Markdown 或 Obsidian 的问题,而是源站获取阶段被微信风控拦住了。
推荐工作流
方案 A:先自动抓
适用于微信暂时没有触发验证时:
python scripts\fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxx"
输出目录默认在:
sources/wechat/<article-id>/
会生成:
raw.htmlarticle.mdmeta.json
方案 B:命中验证后,最小人工介入
如果脚本输出 status: verification_required,就不要继续硬抓了,直接切到下面流程:
- 在你常用浏览器里打开公众号链接
- 完成微信验证
- 页面打开后,保存为本地 HTML
- 再执行:
python scripts\fetch_wechat_article.py --html-file "D:\path\to\saved.html" "https://mp.weixin.qq.com/s/xxxx"
这样正文提取、Markdown 转换、归档命名仍然是自动的,人工只需要做一次验证和保存页面。
为什么这样更稳
- 微信验证是动态策略,直抓不稳定
- 本地快照可以复核,不需要反复访问源站
- 适合当前库的“证据留存 + 周报写作”工作流
Cookie 模式
如果你能从浏览器里拿到有效 Cookie,可以尝试:
python scripts\fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxx" --cookie "wxuin=...; pass_ticket=...; ..."
这有时能提升直抓成功率,但不能保证稳定,仍然建议保留“本地 HTML 快照”作为兜底方案。
输出说明
meta.json 会记录:
- 原始链接
- 提取状态
- 标题
- 公众号名称
- 发布时间
- 是否需要人工验证
article.md 是后续写摘要、做引用、纳入周报的首选输入。