个人笔记提取助手 (wbl-note-extract)
> 从公开网页/文章中提取核心价值,生成值得收藏的个人笔记。
定位:不是摘要工具,而是「核心价值提取器」。先理解全文,再判断什么内容值得收藏学习,最后结构化输出。去除背景铺垫、推广引导等冗余内容,只留核心。
一、输入要求
用户提供一个或多个公开链接。按页面类型分类(而非按平台绑定),不同类型走不同抓取路径:
- 静态文章页(正文随 HTML 一次返回):WebFetch 通常可直接拿到 Markdown 正文
- 需渲染的动态页(正文依赖 JS 加载或交互才能出现):WebFetch 常不完整,走浏览器渲染回退
- 图文卡帖页(信息主要承载在系列图片中):需逐图理解,图文信息缺一不可
> 注:微信公众号(mp.weixin.qq.com / 微信短链)是常用来源,其抓取判据最精细,单独沉淀于步骤 2、3,可直接套用。
可选:
- 补充关注重点(如"只关注工具使用部分");
- 声明这是本人笔记(如"这是我自己的笔记""我自己整理的")——命中时 author 写 Andrew,判定规则见步骤 8。
二、处理流程
步骤 1:抓取内容
- 首选 WebFetch:抓取链接,获取 Markdown 格式的正文内容
- WebFetch 不完整时的回退方案:
- 使用 browser_use 子代理导航到页面
- 使用 browser_snapshot 获取页面结构和文本内容
- 适用于正文依赖 JS 渲染/交互才能加载完整的动态页 - 如果一次抓取不完整,多次尝试不同方式
步骤 2:识别图片
检查抓取内容中的图片,分类处理:
- 信息型图片(含核心内容)→ 需要理解
- 截图教程、信息图、流程图、代码截图
- 图文卡帖图(文字为主要信息载体)
- 对比图、参数图、架构图
- 装饰型图片(无核心信息)→ 忽略
- 头图封面、分割线、表情包、推广 banner、作者头像
步骤 3:理解图片内容
对信息型图片,按以下优先级处理:
- 下载 + Read 理解:
- 直接抓页面 HTML(Python/curl/Invoke-WebRequest),从正文区<img data-src="...">取图片真实地址:微信公众号列表页/正文里的图片常在data-src,且需带Referer: https://mp.weixin.qq.com/请求头,否则返回防盗链空图
- 使用 Shell 下载图片:Invoke-WebRequest -Uri "图片URL" -OutFile "$env:TEMP\note_img_N.png"(或 Pythonurllib,效果等价)
- 使用 Read 工具读取图片文件,理解图片中的文字和信息
- 同时用 HTML 里图片相对正文段落的位置判断「信息型 / 装饰型」:正文标题后紧跟的成品清单、对照表、架构图、四象限图属信息型;页首封面、作者肖像、页尾二维码与关注引导属装饰型 - 下载失败时的回退方案(防盗链等):
- 使用 browser_use 子代理导航到页面
- 使用 browser_take_screenshot 对目标图片截图
- 用 Read 工具读取截图文件 - 将图片理解结果与对应的文字内容匹配,形成完整理解
- 笔记里若要嵌入图片链接,必须从页面 HTML 的
data-src原样复制,禁止凭封面地址或其他文章的地址拼接、猜测。取地址的正确做法:先按正文顺序抓出全部<img ... data-src="...">,再结合上下文段落逐张定位。
-data-w只能当辅助线索,不能当固定阈值:该值随公众号模板浮动,实测 2026-09-16 三篇的正文图分别落在 1055、1184~2600、1080,与早期记录的「正文图 3000–3600」区间不符。用固定数值筛会漏掉真图或误判。
- 可靠判据是「位置 + 抽读」:夹在正文段落之间的图先全部列为候选;带wx_lazy=1#imgIndex=的往期推荐/视频号缩略图直接剔除;页首封面、作者肖像、页尾二维码与关注引导属装饰型剔除;剩下的候选按「是否含文字信息」抽读确认。
- 信息型图不必逐张读完:正文已用文字写清尺寸/步骤/结果的界面截图、改前改后对比图,不重复转写;只转录文字没覆盖的图(如提示词全文、选项弹窗、示例指令)。
- 多张图字节数完全一致 = 同一张空白占位图:正文里若出现多张data-src不同但下载后大小相同的图(实测 2026-09-17 一篇内 3 张w=1471均为 22665 字节的空白蓝色底图),直接判为装饰型跳过,不要逐张 Read 浪费轮次。
- 写完后必须回读文件抽查链接是否为原文地址。
步骤 4:全文理解
- 通读完整内容(文字 + 图片理解结果)
- 理解文章核心主题、结构和意图
- 判断文章类型(见第四节内容适配规则)
步骤 5:提取核心价值
保留什么:
- 值得学习、值得收藏的核心知识点
- 关键操作步骤、参数、配置
- 核心论点、关键数据、结论
- 原始提示词、代码、配置文件(不缩减,原文保留)
- 图片中的关键信息(已理解后转化为文字描述)
去除什么:
- 背景铺垫、引入段、故事开头
- "关注/点赞/转发"等推广引导
- 与核心价值无关的个人感悟、闲聊
- 重复表述、过渡句
- 装饰性内容
步骤 6:结构化整理
- 将提取的核心内容按逻辑结构化排列
- 逐条呈现,清晰易读
- 不限制格式、不限制长度,但必须结构化
- 尽量少用表格(移动端不友好,需左右滑动)
- 善用标题、编号列表、引用块、代码块等 Markdown 元素
- 内容类型决定输出方式(见第四节)
步骤 7:审核检查
生成最终笔记前,必须执行审核,审核不通过则修正后重新审核:
内容完整性审核:
- [ ] 核心价值点是否全部提取(无遗漏)
- [ ] 图片中的关键信息是否已理解并纳入笔记
- [ ] 原始内容(提示词/代码等)是否完整保留,未缩减
- [ ] 去除的内容确实属于冗余(无误删核心内容)
格式审核:
- [ ] Markdown 格式正确(标题层级、列表、代码块等)
- [ ] Tag 标签 3~5 个,准确概括笔记主题,不得出现「个人笔记」等无区分度的通用标签
- [ ] author 已按情形填对:外部文章填公众号名称(非作者笔名、非「整理人」),取不到填「来源未识别」;仅用户明确声明本人笔记时才填 Andrew,未擅自填成本人署名
- [ ] created 是本次处理当天(入库日期),不是原文发布日期;原文发布日期(若有)写在 published
- [ ] 来源链接可点击跳转
- [ ] 无表格或极少使用表格
- [ ] 结构清晰,逐条呈现
步骤 8:生成笔记
- 打 Tag 标签(3~5 个,根据笔记核心内容自动总结,全部为内容主题词,禁止使用「个人笔记」标签)
- 标注作者(写入 YAML
author字段),按两种情形分派:
- 默认·外部文章:填公众号名称,取不到时写来源未识别
- 例外·本人笔记:仅当用户在本轮明确说明「这是我自己的笔记 / 我自己整理的」,才写Andrew
- 禁止靠标签推断作者:tags 里的「个人」是内容标签,与作者是两套字段,不得据此判定本人产出;也不得因抓不到公众号名就默认成本人产出
- 核实方法(避免把作者笔名当公众号):直抓页面 HTML,取id="js_name"标签内的账号名(即公众号),另取var author = "..."(作者笔名,不要用)。例:js_name= 阿紫与AI产品经理、var author= 阿ZI,正确值是前者。
- 短图文帖(type: '10002',只有一段话 + 链接的「分享」型推送)没有id="js_name",此时改从页面 JS 里取nick_name:或window.name = "..."字段作为公众号名,仍然是「账号名优先、不取笔名」的同一口径。实测例:短帖《一句话,画出一张图》的js_name为空,nick_name/window.name= 东裕智能GitHubAI雷达。 - 标注来源链接(原文 URL,YAML 中
source和url字段直接显示完整地址,正文中用 Markdown 链接格式可点击跳转) - 标注日期(
created写本次处理当天=入库日期),按两种日期分家:
-created= 入库日期,即本篇笔记落盘 raw/ 的当天。看板日期轴与「今日新增」都只认这个字段(kb_core.py取created,缺失才回落到文件修改时间)。
-published= 原文发布日期,能从正文署名行「作者 公众号 日期」或页面元数据取到就写,取不到不写。
- 禁止把原文发布日期填进created:那会让「今天入库」的笔记挂到几天前,日期轴上入库日整天空白(2026-09-17 两篇笔记落到 08-26 / 09-13 即此原因;07-20 / 09-15 / 09-15三篇落到 9-16 之前同理)。 - 生成 .md 文件并保存
三、笔记输出格式
---
title: 文章标题
source: 原文URL
url: 原文URL
author: 公众号名称 # 本人笔记写 Andrew;抓不到来源写「来源未识别」
tags: [标签1, 标签2, 标签3]
created: YYYY-MM-DD # 入库日期=本次处理当天,不是原文发布日期
published: YYYY-MM-DD # 可选:原文发布日期,取不到就不写
---
# 笔记标题
> 来源:[原文标题](原文URL)
> 原文链接:原文URL
## 核心要点
1. 核心价值点一
2. 核心价值点二
3. 核心价值点三
## [按内容类型组织的正文]
(结构化内容,逐条呈现,格式不限)
(如有关键原始内容如提示词/代码,用代码块保留原文)
---
> 本笔记由 wbl-note-extract 提取整理 | [查看原文](原文URL)
格式说明:
- YAML frontmatter 中 source 和 url 均填写原文原始 URL,直接显示完整链接地址
- author 字段按两种情形填写,必须填写,它是看板「作者」维度的唯一数据源:
- 外部文章 → 公众号名称(不是文章作者笔名,也不是「整理人」这类本人标注)。微信正文署名规律为「作者 公众号 日期」,也可能出现在 公众号:X 或 作者:X(公众号:Y) 中;确实取不到时写 来源未识别,语义是「没抓到来源」,不等于「本人原创」
- 本人笔记 → Andrew,判定条件是用户在本轮明确说明(如"这是我自己的笔记"),不靠标签推断
- tags 为数组格式,3~5 个,全部为内容主题词,不得包含「个人笔记」等无区分度标签
- 正文开头标注来源,同时显示可点击链接和原始 URL 地址
- 正文结构不固定,由内容决定,但必须逐条结构化呈现
- 正文末尾标注提取工具和原文链接
四、内容适配规则
按文章类型适配提取重点和输出方式:
工具/经验类(工具教程、操作指南、经验分享):
- 提取重点:核心步骤、关键参数、注意事项、避坑指南
- 输出方式:编号列表 + 代码块(参数/命令)+ 引用块(注意事项)
SKILL/提示词类(AI 提示词、Skill 代码、配置文件):
- 提取重点:原始内容完整保留,附使用说明和关键点解读
- 输出方式:代码块保留原文 + 编号列表说明要点
- 关键原则:原始内容不缩减、不改动
观点/分析类(行业分析、趋势判断、方法论):
- 提取重点:核心论点、关键数据、推理逻辑、结论
- 输出方式:分条列述 + 引用关键数据 + 结论高亮
图文并茂类(图文卡帖等图片为主的内容):
- 提取重点:每张图片的核心信息 + 对应文字说明
- 输出方式:按图片顺序分条总结,图意与文字匹配呈现
- 图片信息转化为文字描述,不依赖原图即可理解
其他类型:
- 按内容本身逻辑结构化呈现
- 核心原则:值得收藏的价值点逐条列出
五、输出目录规则
- 默认保存目录:
E:\08AI\05-个人知识库\raw - 检测该目录是否存在:
- 存在 → 直接保存
- 不存在 → 暂停并与用户确认保存路径,禁止默认写入其他位置 - 文件名格式:
文章标题简称.md(不加日期前缀,不带「个人笔记」后缀)。日期由 frontmatter 的created承载(入库日期=本次处理当天),不写进文件名。 - 文件名安全处理:替换 Windows 非法字符
\ / : * ? " < > |(半角)为全角字符或直接删除;超过 60 字截断;与raw/已有文件重名时末尾加-2、-3递增序号。 - 完整路径示例:
E:\08AI\05-个人知识库\raw\文章标题简称.md - 如用户提供指定保存路径,优先使用用户指定路径
六、版本记录
- v2.0.0(2026-10-09):去平台商标词,改为按页面类型分类。本技能曾因描述中出现第三方社区平台商标词("小红书")在外部技能市场被自动下架(2026-10-08)。经核查,技能本体不调用该平台任何接口、不复制其素材,侵权系"关键词扫描误伤"。本次将全部平台商标词(description、副标题、输入要求、步骤 1/2、内容适配规则)改为能力特征描述:输入按"静态文章页 / 需渲染的动态页 / 图文卡帖页"三类划分,抓取路径自动匹配。技术能力完全不变,仅去除具体平台指称。
- 保留项:微信公众号判据(步骤 2、3 的
data-src/ 防盗链 /data-w口径)不动——微信是常用来源且判据最精细,保留不构成风险;第 56–70 行精粹段为平台无关的技术判据,一字未改。 - 历史留存:下方 v1.0.0 条目中的旧表述为版本沿革留痕,若外部市场对全文无差别扫描触发关键词,可将该处的平台名一并抽象化。
- v1.9.0(2026-09-17 诊断 / 09-18 修订):定死
created语义=入库日期(本次处理当天),原文发布日期改由可选的published字段承载。此前各批次把created填成原文发布日期,导致 2026-09-17 入库的两篇笔记落到 08-26 / 09-13、09-16 入库的三篇落到 07-20 / 09-15,看板日期轴上 09-16 / 09-17 两个入库日整天空白,「今日新增」常年为 0。同步在AGENTS.md(新增「日期字段」节)与自动化任务/02-链接解析为笔记.md(步骤 5、输出、自检清单)写死同一口径。 - v1.8.0(2026-09-17):补两处实测口径。① 短图文帖(
type: '10002')页面无id="js_name",取公众号名改走nick_name:/window.name字段,仍是「账号名优先、不取笔名」。② 正文里多张data-src不同但下载字节数一致的图是同一张空白占位图,直接判装饰型跳过,不逐张 Read。 - v1.7.0(2026-09-16):修正图片判定口径。原指引把
data-w3000–3600 当成「正文图」的固定判据,实测不成立——同日三篇的正文图data-w分别为 1055、1184~2600、1080。改为「data-w仅作辅助线索,主判据是位置 + 抽读」,并补充「信息型图不必逐张读」的止损规则(正文文字已覆盖尺寸/步骤/结果的界面截图与对比图不重复转写,只转录提示词全文、选项弹窗、示例指令这类文字未覆盖的图)。 - v1.6.0(2026-09-15):
author改双轨口径,取消按标签推断作者。新增「本人笔记」判定——仅当用户在本轮明确说明「这是我自己的笔记 / 我自己整理的」时才写Andrew;外部文章抓不到公众号名时写来源未识别,取代原先的「个人」(该值把「抓取失败」与「本人署名」混成了一个词,看板上同一批文章既被当成来源、又被当成身份)。明确禁止靠 tags 里的「个人」标签推断作者:标签是内容主题,作者是来源身份,两者是独立字段。另在 YAML 头部补version字段,供同步任务判断版本新旧。 - v1.5.0(2026-09-15):新增图片地址硬约束——笔记内嵌的图片链接必须从页面 HTML 的
data-src原样复制,禁止凭封面地址或他文地址拼接;补记按data-w/wx_lazy区分正文图与推广图的判据。教训来源:diagram-design 一文因凭封面地址拼链接,8 条图片地址全部写错,事后逐一替换。 - v1.4.0(2026-09-11):补全两处可复用做法。图片:从页面 HTML 的
data-src取真实地址、下载带Referer: https://mp.weixin.qq.com/防防盗链空图,并给出信息型/装饰型图片的位置判据。公众号名:明确用页面 HTML 的id="js_name"取值,var author是作者笔名不可用(如 js_name=阿紫与AI产品经理、var author=阿ZI)。 - v1.3.0(2026-09-11):新增
author(公众号名称)字段,作为看板「公众号」维度的数据源;补记 v1.2.0 遗漏的输出模板与格式说明(模板 tags 仍残留「个人笔记」、格式说明仍写「必须包含个人笔记标签」,与实际规则矛盾,一并更正)。 - v1.2.0(2026-09-10):去掉「个人笔记」输出痕迹。文件名不再加「个人笔记」后缀;tags 不再包含「个人笔记」,全部为内容主题词。
- v1.1.0(2026-09-04):调整输出规范。YAML 增加
url字段直接显示原文 URL;正文增加原文链接直接显示;输出目录改为E:\08AI\05-个人知识库\raw,不存在时询问用户;文件名增加「个人笔记」后缀;Tag 必须包含「个人笔记」标签。 - v1.0.0(2026-09-04):初始版本。实现公众号/小红书/网页链接→核心价值提取→结构化 Markdown 笔记全流程。含图片理解(下载+Read/浏览器截图回退)、内容审核(完整性+格式)、Tag标签(3~5个)、来源链接(可点击跳转)、按文章类型适配输出。