Install
openclaw skills install @liuhedev/lh-wechat-to-markdown抓取并保存微信公众平台文章为干净的 Markdown 与 HTML 快照,支持登录态和图片本地化下载。
openclaw skills install @liuhedev/lh-wechat-to-markdown在用户可访问微信文章页面的基础上,抓取公众号文章内容并转换为干净的 Markdown,同时保存 HTML 快照。
所有脚本位于本 skill 的 scripts/ 子目录中。
执行说明:
{baseDir}{baseDir}/scripts/<script-name>.py*-captured.html)data-src,并兼容 data-original、data-actualsrc、data-croporisrc、data-cover--download-images):下载到 images/ 目录,Markdown 中自动替换为相对路径;下载时复用浏览器会话的 Referer/Cookie,单张失败不影响整体# 自动模式 - 无头浏览器,页面加载完成后自动抓取(默认)
python3 {baseDir}/scripts/main.py <wechat-article-url>
# 使用可视浏览器(带 UI)
python3 {baseDir}/scripts/main.py <wechat-article-url> --headed
# 等待模式 - 可视浏览器,等待用户确认页面准备好后再抓取(推荐用于需要登录的情况)
python3 {baseDir}/scripts/main.py <wechat-article-url> --headed --wait
# 保存到指定文件
python3 {baseDir}/scripts/main.py <wechat-article-url> -o output.md
# 保存到自定义输出目录(自动生成文件名)
python3 {baseDir}/scripts/main.py <wechat-article-url> --output-dir ./wechat-articles/
# 下载图片到本地
python3 {baseDir}/scripts/main.py <wechat-article-url> --download-images
| 选项 | 描述 |
|---|---|
<url> | 微信公众号文章链接 |
-o <path> | 输出文件路径(必须是文件路径,不是目录) |
--output-dir <dir> | 基础输出目录,自动生成 {dir}/{date}/{slug}.md |
--headed | 使用可视浏览器(默认无头模式) |
--wait | 等待用户信号后再抓取(仅在 --headed 模式有效,适用于需要登录或复杂页面) |
--timeout <ms> | 页面加载超时时间(默认:30000) |
--download-images | 下载图片到本地 images/ 目录并重写为相对路径;复用浏览器会话 Referer/Cookie,单张失败仅警告,保留原 URL |
| 模式 | 行为 | 适用场景 |
|---|---|---|
| 自动(默认) | 网络空闲时抓取 | 公开可访问的文章、静态内容 |
等待(--wait) | 用户确认后抓取 | 需要登录、懒加载、可能有访问限制的页面 |
等待模式工作流:
--wait 运行脚本 → 脚本输出"请在浏览器中确认页面加载完成,然后按 Enter 继续"每次运行会保存两个文件:
url、title、author、published_at、captured_at),以及转换后的 Markdown 内容*-captured.html,包含从 Chrome 捕获的渲染后页面 HTMLHTML 快照在任何 Markdown 处理之前保存,因此它始终是用于转换的页面 DOM 的忠实捕获。
默认:wechat-articles/YYYY-MM-DD/{slug}.md
使用 --output-dir ./posts/:./posts/YYYY-MM-DD/{slug}.md
HTML 快照使用相同的 basename:
wechat-articles/YYYY-MM-DD/{slug}-captured.html
./posts/YYYY-MM-DD/{slug}-captured.html
{slug}:从文章标题生成(kebab-case,2-6 个词)
冲突处理:追加时间戳 {slug}-YYYYMMDD-HHMMSS.md
当启用 --download-images 时:
images/ 目录Referer 和 Cookie 图片语法| 变量 | 描述 |
|---|---|
WECHAT_CHROME_PATH | 自定义 Chrome 可执行文件路径 |
WECHAT_DATA_DIR | 自定义数据目录 |
WECHAT_CHROME_PROFILE_DIR | 自定义 Chrome 用户配置目录(推荐用于保存登录态) |
| 问题 | 建议解决方案 |
|---|---|
| Chrome 未找到 | 设置 WECHAT_CHROME_PATH 环境变量 |
| 页面超时 | 增加 --timeout 值 |
| 需要登录 | 使用 --wait 模式,配合 WECHAT_CHROME_PROFILE_DIR 使用已登录的 Chrome 配置 |
| 抓取不完整 | 检查保存的 -captured.html,尝试 --wait 模式让用户手动滚动页面 |
| Markdown 质量差 | 检查 HTML 快照,微信可能已更新页面结构,欢迎提交 Issue |
# 测试一篇公开的微信文章
python3 {baseDir}/scripts/main.py https://mp.weixin.qq.com/s/xxx -o test-output.md
# 测试等待模式
python3 {baseDir}/scripts/main.py https://mp.weixin.qq.com/s/xxx --wait