基于 Puppeteer 的无头浏览器自动化工具,可渲染 JS 密集型网页并提取文本内容,适合获取动态加载内容,但存在 SSRF 风险和沙箱配置问题。
基本信息
- 技能名称?Browser
- 中文名称?无头浏览器,读懂动态网页
- 作者?pshotts
- 分类?专业技能
- 版本?1.0.0
- 标签?web-scraping, headless-browser, puppeteer, dynamic-content, ssrf-risk
使用方法
使用说明
核心用法
Browser Skill 是基于 Puppeteer 的无头浏览器自动化工具,主要用于:
渲染 JavaScript 密集型网页(SPA、动态内容网站)
提取干净、可读的文本内容
访问常规 HTTP 请求无法获取的动态加载数据
基础命令:
openclaw browser read 该命令会启动 Chromium 无头浏览器,导航至指定 URL,等待页面完全渲染后提取文本内容返回。
显著优点
- 动态内容支持 :相比简单的 HTTP 请求,能完整执行页面 JavaScript,获取 React、Vue 等框架渲染后的真实内容
- 内容结构化 :自动提取可读文本,过滤广告和导航等噪音
- 官方依赖 :基于 Puppeteer 官方库,依赖审计通过,无已知 CVE
- 代码简洁 :仅 41 行可执行代码,结构清晰,无混淆或恶意特征
潜在缺点与局限性 - 安全沙箱绕过 :使用 --no-sandbox 启动参数,降低了浏览器与宿主机的隔离级别
- SSRF 风险 :URL 输入缺乏验证,可能访问内网服务、元数据端点(如 AWS 169.254.169.254)或 file:// 协议
- 性能开销 :启动完整浏览器比 HTTP 请求消耗更多资源,不适合高频调用
- 超时控制不足 :缺乏明确的页面加载超时和请求大小限制
- 错误信息泄露 :原始错误消息可能暴露内部系统信息
适合人群
需要获取 JavaScript 渲染内容的用户(如现代新闻网站、文档站点)
在受控网络环境中使用的开发者
能够评估并承担 SSRF 风险的进阶用户
不建议使用场景:
处理不可信用户输入的 URL
多租户环境或共享基础设施
对延迟敏感的高频查询
常规风险
| 风险项 | 等级 | 说明 | |--------|------|------| | SSRF(服务器端请求伪造) | 中 | 可访问内网资源,需严格输入控制 | | 沙箱绕过 | 中 | 恶意页面可能突破浏览器隔离 | | 数据外泄 | 低 | 可能将本地数据编码至 URL 发出 | | 资源耗尽 | 低 | 无超时/大小限制,可能挂起或内存溢出 | 缓解建议: 在隔离容器中使用,配合 URL 白名单(仅允许 http/https,拒绝私有 IP 和 localhost),添加 30 秒超时和响应大小限制。
💬 评论 (0)
📭 还没有评论,快来抢沙发吧!