Brave Search

极速无头搜索,提取网页即得

专业技能榜 #21

Brave Search API 驱动的无头网页搜索与内容提取工具,无需浏览器即可获取实时网络信息,适合文档检索与事实查证

收藏
150.6k
安装
52.8k
版本
1.0.1
CLS 安全性认证2026-05-06
点击查看完整报告 >

使用说明

核心用法

Brave Search 是一个基于 Brave Search API 的命令行工具,提供轻量级网页搜索和内容提取能力。用户可通过 ./search.js 执行关键词搜索,支持调整结果数量(-n)和获取完整网页内容(--content)。./content.js 则用于直接提取指定 URL 的页面内容并转换为 Markdown 格式。输出包含标题、链接、摘要及可选的完整正文,结构清晰易读。

显著优点

  • 零浏览器依赖:纯 API 调用,无需启动 Chromium 等重型浏览器,资源占用极低
  • T1 级可信来源:维护者为 Mario Zechner(libGDX 创始人)和 steipete(PSPDFKit 创始人),均为知名开源贡献者
  • 输出格式友好:自动将网页内容转换为 Markdown,便于 LLM 直接处理
  • 依赖安全:仅使用 @mozilla/readability、jsdom、turndown 等成熟开源库,无已知 CVE
  • 隐私友好:遵循 GDPR 数据最小化原则,无敏感数据收集

潜在局限

  • 需外部 API Key:依赖 BRAVE_API_KEY 环境变量,存在密钥管理成本
  • 网络访问不可控:会访问用户提供的任意 URL,存在访问恶意站点的理论风险
  • 内容提取质量波动:依赖第三方解析库,复杂动态网页可能提取不完整
  • 无本地缓存机制:重复查询会产生额外 API 调用

适合人群

  • 需要实时网络信息的 AI Agent 开发者
  • 不愿维护浏览器自动化基础设施的技术团队
  • 重视代码可信度和供应链安全的用户

常规风险

  • 需确保 API Key 存储安全,避免泄露
  • 建议在可信网络环境中使用,防止内网服务暴露
  • 处理用户提供的 URL 时应考虑域名白名单策略

安全解读

核心用法

Brave Search Skill 提供命令行式的网页搜索和内容提取功能,主要包含两个脚本:

  • `search.js`:执行搜索查询,支持基础搜索(默认5条结果)、指定结果数量、以及获取页面完整内容
  • `content.js`:直接提取指定 URL 的网页内容并转为 Markdown

典型工作流:先用 search.js 查找相关信息,再用 content.js 深度提取感兴趣页面的内容。输出格式清晰,包含标题、链接、摘要及可选的 Markdown 内容。

显著优点

1. 轻量高效:无需安装 Chromium 等重型浏览器,依赖精简(仅4个 npm 包)
2. 隐私友好:Brave Search 本身注重隐私保护,Skill 不收集 PII,符合 GDPR

3. 内容净化:集成 Mozilla Readability 和 Turndown,自动提取可读内容并转为 Markdown

4. 代码透明:265行代码结构清晰,无混淆,易于审计

5. 依赖可信:所有依赖均来自知名开源组织(Mozilla),无已知 CVE

潜在缺点与局限性

| 问题 | 说明 |
|------|------|
| SSRF 风险 | 可访问用户指定的任意 URL,未过滤私有 IP 或危险协议 |
| 输入验证薄弱 | 缺乏 URL 白名单和严格校验机制 |
| 来源可信度 T3 | 个人开发者维护,非知名组织背书 |
| 网络行为警告 | 访问外部 URL 的声誉和加密级别不可控 |
| 批处理风险 | `--content` 获取多结果时可能产生大量请求 |

适合人群

  • 需要快速查阅文档、API 参考的技术开发者
  • 追求隐私保护、不愿使用 Google/Bing 的用户
  • 自动化工作流中需要结构化网页内容的场景
  • 对浏览器资源占用敏感的服务器/容器环境

常规风险

  • 低危 SSRF:恶意指令可能诱导访问内网服务(127.0.0.1、10.0.0.0/8 等)
  • 依赖过时:需关注 @mozilla/readability 和 jsdom 的安全更新
  • API 密钥管理:需自行配置 BRAVE_API_KEY,存在泄露风险

使用建议

建议在生产环境部署前添加 URL 白名单过滤,限制仅访问可信域名;同时考虑为批量内容提取添加用户确认机制。

Brave Search 内容

手动下载zip · 10.7 kB
content.jstext/javascript
请选择文件