基于 Chrome CDP 的网页转 Markdown 工具,支持 X/Twitter、YouTube、Hacker News 等站点适配,可处理登录验证与媒体下载,适合内容归档与研究。
说明:
## 核心用法
`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 复用可能残留登录态,共享环境需注意数据隔离
– **内容完整性**:依赖浏览器渲染意味着页面广告、追踪脚本同样执行,敏感场景需配合隐私配置
– **存储膨胀**:默认媒体下载策略若设为”始终下载”,长期运行将产生大量本地文件






