返回顶部
w

wechat-to-obsidian微信文章剪藏

Clip WeChat public articles (mp.weixin.qq.com) to Obsidian vault — headless browser, full text + images in original order, no broken links. 将微信公众号文章无损剪藏到 Obsidian,图文顺序保留,图片自动下载到 attachments 目录。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
203
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

wechat-to-obsidian

WeChat → Obsidian 剪藏工具

将微信公众号文章剪藏到你的 Obsidian 仓库:

  • - 无头模式 — 使用 agent-browser(无可见窗口,速度快)
  • 完整保真 — 按原始 DOM 顺序提取文本和图片
  • 图片下载 — 使用带正确 Referer 标头的 curl 保存到笔记旁的 attachments/ 目录(避免 403 错误)
  • 干净 Markdown — Obsidian ![[filename]] 嵌入语法

前提条件

  • - agent-browser ≥ 0.17:npm install -g agent-browser && agent-browser install
  • curl(macOS/Linux 预装)
  • 本地文件系统可访问的 Obsidian 仓库

触发方式

用户发送 mp.weixin.qq.com 链接并说类似:

  • - 存 Obsidian / 剪藏 / 帮我存
  • save to Obsidian / clip this / save article

标准工作流程

步骤 1 — 打开页面(无头模式)

bash
agent-browser open
agent-browser wait --load networkidle

步骤 2 — 获取标题

bash
agent-browser get title

步骤 3 — 滚动以触发懒加载图片

微信公众号使用懒加载 — 提取图片 URL 前必须先滚动。

bash
agent-browser eval
(async () => {
window.scrollTo(0, document.body.scrollHeight);
await new Promise(r => setTimeout(r, 2000));
const step = 600;
for (let y = 0; y < document.body.scrollHeight; y += step) {
window.scrollTo(0, y);
await new Promise(r => setTimeout(r, 300));
}
return done;
})()

步骤 4 — 按 DOM 顺序提取内容

重要: 使用经典 function(){} 语法,不要使用箭头函数 — 在 JSON.stringify() 内部使用箭头函数会导致 agent-browser eval 出现语法错误。

bash
agent-browser eval
(function() {
var nodes = document.querySelectorAll(#jscontent p, #jscontent section, #js_content img);
var result = [];
var imgIdx = 0;
nodes.forEach(function(node) {
if (node.tagName === IMG) {
var src = node.currentSrc || node.src || node.dataset.src || ;
if (src && src.includes(mmbiz) &&
!src.includes(mmbiz.qlogo) &&
!src.includes(profile)) {
var h = node.naturalHeight || node.height || 0;
var alt = (node.alt || ).toLowerCase();
if ((h >= 50 || h === 0) &&
!alt.includes(二维码) &&
!alt.includes(引导) &&
!alt.includes(赞赏)) {
result.push({ type: img, idx: imgIdx++, src: src });
}
}
} else {
var text = node.innerText ? node.innerText.trim() : ;
if (text && text.length > 3) result.push({ type: text, text: text });
}
});
return JSON.stringify(result);
})()

图片过滤规则(跳过以下内容):

  • - mmbiz.qlogo — 作者头像
  • mp_profile — 公众号头像
  • 高度 < 50px — 装饰性分隔线
  • alt 包含 二维码 / 引导 / 赞赏 — 二维码和打赏提示

步骤 5 — 确认保存位置

写入前务必询问用户。根据主题建议目录:

📂 建议位置:root>/directory>/
📄 文件名:.md
🖼 图片 → 同一文件夹的 attachments/ 目录
确认,或选择其他位置?

步骤 6 — 下载图片

bash
mkdir -p /attachments

必须包含 Referer 标头 — 否则微信公众号返回 403

curl -s -L --fail \ -A Mozilla/5.0 (Macintosh; Intel Mac OS X 10157) AppleWebKit/537.36 \ -e https://mp.weixin.qq.com/ \ url> -o dir>/attachments/

命名规则:-图00.png、图01.jpg … 按 DOM 顺序编号。
扩展名:检查 wx_fmt=jpeg → .jpg,否则 → .png。

批量下载的 Shell 技巧 — 使用函数,不要用 declare -A(zsh 不支持关联数组):

bash
download_img() {
local idx=$1 url=$2
local ext=png
echo $url | grep -q wx_fmt=jpeg && ext=jpg
local fname=$(printf -图%02d.%s $idx $ext)
curl -s -L --fail \
-A Mozilla/5.0 \
-e https://mp.weixin.qq.com/ \
$url -o $fname \
&& echo OK $fname || echo FAIL $fname
}

步骤 7 — 写入笔记

严格遵循步骤 4 的 DOM 顺序 — 在原始位置插入图片,而不是放在顶部或底部。

markdown

{文章标题}

来源: 微信公众号 — {作者/公众号名称}
原文链接: {URL}
剪藏时间: {YYYY-MM-DD}
标签: #{标签1} #{标签2}



{段落文本}

![[slug-图00.jpg]]

{更多段落文本}

![[slug-图01.png]]

...



参考链接:
  • - {文章中的任何链接}

步骤 8 — 关闭浏览器

bash
agent-browser close

步骤 9 — 向用户报告

告知用户:

  • - 笔记路径
  • 下载的图片数量
  • ⚠️ 提醒:如果移动笔记,请同时移动 attachments/ 文件夹。Obsidian 的 ![[]] 会进行全局仓库搜索,链接不会立即断开,但保持在一起更整洁。



注意事项(经验教训)


#问题解决方法
1懒加载图片返回空 src提取前务必滚动整个页面
2
微信公众号图片返回 403 | curl 必须传递 -e https://mp.weixin.qq.com/ 作为 Referer |
| 3 | 图片顺序错误 | 按顺序遍历 DOM 节点 — 不要单独收集图片 |
| 4 | zsh: bad substitution | zsh 不支持 declare -A;改用 shell 函数 |
| 5 | agent-browser eval 中出现 SyntaxError: missing ) after argument list | 在 JSON.stringify() 内部使用经典 function(){},不要用箭头函数 |
| 6 | async eval 挂起 | 包裹在 (async () => { ... })() 中 — 不需要外层 await |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 wechat-to-obsidian-1776110415 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 wechat-to-obsidian-1776110415 技能

通过命令行安装

skillhub install wechat-to-obsidian-1776110415

下载

⬇ 下载 wechat-to-obsidian v1.0.0(免费)

文件大小: 3.57 KB | 发布时间: 2026-4-14 10:04

v1.0.0 最新 2026-4-14 10:04
Initial release: headless WeChat article clipper with full image+text fidelity, agent-browser powered

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部