---
name: clipping
description: 将网页文章（含微信公众号等 JS 渲染页面）保存为本地 Markdown 笔记。自动处理图片中的文字信息——对信息图、表格截图等使用 PaddleOCR 提取中英文文本并重构为 Markdown 表格。
---

## 适用场景

- 用户要求保存一篇网页文章到本地笔记系统（如 Obsidian Clippings 目录）。
- 文章来源是 JS 渲染页面（微信公众号、部分新闻站），普通抓取工具拿不到正文。
- 文章的核心信息藏在图片里（信息图、表格截图、数据可视化），需要把图片内容转为可搜索的文本。

## 获取文章内容

微信公众号等 JS 渲染页面，WebFetch 会返回空内容。必须通过当前可用的 headed browser provider（例如 `chrome` 插件的 `cdp-chrome`、Codex Chrome plugin，或 agent 原生 browser-use）加载页面，等待渲染完成后提取正文、标题、作者、发布日期和图片 URL。`clipping` 不硬依赖 `chrome` 插件；只有当前环境没有等价有头浏览器能力时，才建议安装/启用它。

提取时注意区分正文内容和页面装饰元素（广告、推荐阅读、底部导航等）。

## 识别关键图片

部分文章的主要信息以图片形式呈现——信息图、排行榜、对比表格等。这类图片通常有明显特征：尺寸较大（特别是高度远超普通配图）、位于正文核心位置。

识别到这类图片后，不能只插入图片链接，需要提取其中的文字信息。

## 图片 OCR 提取

对包含文字/表格的关键图片，使用 PaddleOCR（PP-OCRv5，lang='ch'）提取文本。

**环境注意事项：**
- PaddlePaddle 对 Python 版本有兼容要求，最新的 Python 版本可能不支持，必要时回退到 Python 3.12 venv
- 国内环境 PyPI 可能有 SSL 问题，可用清华等国内镜像源
- PaddleOCR v3.4+ 的 Python API 使用 `predict()` 方法，不是 `ocr()`；`save_path` 参数仅限 CLI 模式
- 设置 `PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=True` 跳过连通性检查，避免长时间卡住

**超长图片处理：**
图片高度超过 4000px 时，OCR 精度会下降。将图片按 ~2000px 高度分段裁剪后逐段识别，效果更好。

**表格结构重建：**
OCR 返回的是带坐标的文本块列表。利用 x 坐标区分列、y 坐标判断行归属，可以重建表格结构。典型策略：用左侧文本（如公司名、行标题）作为行锚点，右侧文本作为对应内容。具体的列分界阈值需要根据实际图片布局调整。

## 组装 Markdown

将文章正文和 OCR 提取的表格内容合并为一份 Markdown 文件：

- **Frontmatter**：包含 source URL、作者、日期、标签等元数据
- **正文**：保留原文结构，段落、标题层级与原文一致
- **表格**：OCR 重建的表格用 Markdown 表格语法呈现，置于原图片所在位置
- **图片**：非表格类图片保留为图片链接

## 保存

保存到用户指定的目录。文件名从文章标题生成，去除特殊字符。若用户未指定目录，询问保存位置。
