用途:把网页文章收藏变成可重复的工作流,而非一次性手工操作。它从单篇文章 URL 或索引页、归档页、专题页、作者主页抓取正文,保存为带 YAML frontmatter 的本地 Markdown,作为文章进入本地知识系统的入口。抓取结果默认标记为 source_candidate(待判断资料),而非已整理知识,状态字段为 unprocessed -> queued -> source_carded -> compiled -> used,或 ignored / needs_human。
主要能力:单篇收藏(提取标题、摘要、发布日期、正文并保存);批量收藏(按前 N 篇、热门、最新或指定文章列表抓取)。执行策略按成功率优先:先脚本直抓,静态解析 HTML / JSON-LD / article / main,失败后 fallback 到 defuddle(X/Twitter 长文与微信公众号优先),再 fallback 到 Jina Reader(r.jina.ai,无需 API Key),微信公众号等反爬站点可再走 Metaso Reader API(需设置 METASO_API_KEY)。索引页懒加载时用浏览器滚动收集 URL,写入临时 txt 后以 --url-file 批量落地;静态抓取被封时可用浏览器直接抽正文,或经 CDP Proxy 兜底。
使用方式:首次运行先执行 bash <web-clipper-root>/scripts/run_web_clipper.sh --help,该命令有副作用,会运行 bootstrap,检查并可能安装 Python 3、创建默认 clipping 目录、写入当前项目下的 .web-clipper/EXTEND.md,应从目标 vault 根目录执行。单篇示例:bash "$WEB_CLIPPER_ROOT/scripts/run_web_clipper.sh" --url "<文章URL>" --mode single --output-dir "<输出目录>"。批量示例:--url "<索引页URL>" --mode batch --count 20 --output-dir "<输出目录>"。未指定输出目录时,依次回退到 EXTEND.md 的 default_output_dir、00_收件箱/Clippings/、Clippings/。文件默认命名为 YYYY-MM-DD 标题.md,日期缺失时为 unknown-date 标题.md。
适用场景:Substack、常规博客、简单 CMS、X/Twitter 长文、微信公众号等公开可读文章页的收藏与归档,配合 Obsidian Clippings 使用。
限制:只处理用户有权访问的公开 HTTP(S) 页面,不绕过登录、付费墙、验证码或访问控制;不适用于摘要、改写、翻译、整站爬虫归档或浏览器自动化测试。正文可能受版权保护,默认用于个人研究与内部归档,应保留作者、日期与原链接。defuddle 通过 npx 运行固定版本;Jina Reader 与可选 Metaso fallback 会把目标 URL 发送给第三方服务,启用 METASO_API_KEY 前应确认费用与数据传输边界。批量失败时需明确区分链接收集失败、正文提取失败或文件写入失败。