微信公众号文章转 Markdown
将公开可访问的微信公众号文章归档为可编辑、可离线保存的 Markdown 文件。转换时清理常见页面噪音,并将文章配图保存为本地文件。
核心能力
- 提取公开
mp.weixin.qq.com文章的标题、作者、正文与来源链接。 - 清理广告、评论区、赞赏区、工具栏等非正文内容。
- 保留常用 Markdown 结构:标题、段落、列表、链接、表格和代码块。
- 下载正文图片到本地
images/目录,并自动替换 Markdown 图片引用。 - 为生成的 Markdown 写入 YAML 元数据;支持多链接和文本文件批处理。
运行条件
- Python 3.10+,并可安装
requirements.txt中的依赖。 - 可访问网络和公开的微信公众号文章页面。
- 不需要拥有公众号账号;不支持登录后可见、已删除或验证码拦截的文章。
工作流
- 确认链接域名是
mp.weixin.qq.com,并提醒用户仅处理有权保存或个人归档的公开文章。 - 在 Skill 根目录安装依赖:
bash
python -m pip install -r requirements.txt
- 执行转换:
bash
python scripts/wechat_to_md.py "<文章链接>" -o "<输出目录>"
- 检查生成的 Markdown 和图片目录;向用户报告输出路径与失败项。
输出内容
每篇文章会生成一个以标题命名的文件夹:
<输出目录>/
└── <文章标题>/
├── <文章标题>.md
└── images/
├── img_000.png
└── img_001.jpg
Markdown 顶部包含文章标题、作者、来源链接和转换时间。正文图片会引用本地相对路径,例如 images/img_000.png。
常用示例
将一篇文章保存到 wechat-output:
python scripts/wechat_to_md.py "https://mp.weixin.qq.com/s/xxxx" -o wechat-output
批量转换多个链接:
python scripts/wechat_to_md.py url1 url2 -o wechat-output
从文本文件读取链接(每行一个):
python scripts/wechat_to_md.py -f urls.txt -o wechat-output
不下载图片、只保留远程图片链接:
python scripts/wechat_to_md.py "<文章链接>" -o wechat-output --no-images
失败处理
- 出现验证码、访问频繁或登录限制时,停止自动重试并建议用户稍后再试;不要尝试绕过验证码或访问限制。
- 页面内容为空时,检查链接是否有效且文章是否公开。
- 图片下载失败时,Markdown 会保留远程图片链接,文章正文仍可交付。
版权与隐私
- 仅用于个人知识归档或已获授权的内容处理。
- 保留生成文件中的
source字段;不要将转换后的全文作为无授权内容重新发布。 - 本 Skill 包只包含文本脚本与依赖清单;文章图片只在运行时保存到用户指定目录,不会随 Skill 上传包分发。