核心用法
baoyu-url-to-markdown 是一款基于 baoyu-fetch CLI 的网页内容提取工具,通过 Chrome DevTools Protocol (CDP) 驱动浏览器,将任意 URL 转换为结构清晰的 Markdown 文档。核心工作流程为:解析用户输入 URL → 调用 Chrome CDP 渲染页面 → 应用站点特定适配器提取内容 → 输出 Markdown 或 JSON。
主要功能特性:
- 站点适配器:内置 X/Twitter 线程、YouTube 字幕、Hacker News 讨论及通用页面(Defuddle)四种适配器,自动识别站点类型
- 交互等待模式:支持
--wait-for interaction处理登录态、CAPTCHA 等人工干预场景,超时可配置(默认10分钟) - 媒体下载:可选下载图片/视频到本地
imgs/、videos/目录并自动重写 Markdown 链接 - 灵活输出:支持标准输出、指定文件路径、JSON 格式,以及调试模式输出完整网络日志
- 首选项配置:通过 EXTEND.md 管理媒体下载策略、默认输出目录,支持项目级/用户级/ XDG 配置三级作用域
显著优点:
1. 真实浏览器渲染:基于 Chrome CDP 而非纯 HTTP 请求,可执行 JavaScript、处理动态加载内容,规避传统爬虫的渲染限制
2. 站点定制化:专用适配器针对 X 线程结构、YouTube 字幕 DOM 等做精准提取,输出质量优于通用 readability 方案
3. 人工干预能力:交互等待模式填补了 headless 工具无法处理登录墙的空白,扩展了可用场景
4. 自包含归档:媒体下载 + 独立目录结构({domain}/{slug}/)使单条 URL 的内容完整可移植
潜在缺点与局限性:
1. 外部依赖重:必须安装 Bun 运行时及 Chrome/Chromium 浏览器,环境配置门槛较高
2. 资源消耗大:每次调用启动 Chrome 实例,内存和 CPU 开销显著高于轻量级 HTTP 客户端
3. 质量不确定性:文档明确指出"默认 headless 捕获视为临时结果",部分站点在 headless 模式下会返回差异化内容,需人工校验
4. 首选项阻塞设计:首次使用强制交互式配置,无法静默初始化,自动化场景受限
5. 维护负担:适配器需随目标站点改版持续更新,X、YouTube 等平台的反爬策略可能影响稳定性
适合人群:
- 研究人员、记者、知识管理者:需要归档完整网页内容(含动态加载的评论区、字幕)
- 开发者、技术写作者:构建文档站、生成静态内容,需程序化提取 clean markdown
- 有登录态需求的用户:需抓取会员内容、个人 timeline 等需身份验证的页面
常规风险:
- 法律合规:批量抓取 X/Twitter、YouTube 等平台内容可能违反 ToS,存在账号封禁风险
- 隐私泄露:Chrome profile 复用可能残留登录态,共享环境需注意数据隔离
- 内容完整性:依赖浏览器渲染意味着页面广告、追踪脚本同样执行,敏感场景需配合隐私配置
- 存储膨胀:默认媒体下载策略若设为"始终下载",长期运行将产生大量本地文件