Search

通过 Bright Data CLI 实现关键词与语义搜索,支持多引擎与结构化结果。

已扫描
适合谁
研究人员、数据采集人员
不适合谁
无网络环境用户、无需外部搜索的本地任务用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @meirk-brd/brightdata-search

Skill 说明

命令、参数、文件名以原文为准

Bright Data — 搜索

在网页上查找信息。此技能包含两个命令:

  • **bdata search** — 经典关键词 SERP(Google/Bing/Yandex)。适用于需要“关键词 X 对应的排名结果”时。
  • **bdata discover** — 基于 AI 意图排序的发现,支持可选页面内容。适用于需要“与主题 Y 相关且符合意图 Z 的页面”时。

若需从已知平台(如 Amazon、LinkedIn、TikTok 等)获取结构化数据,请**停止使用本技能,改用 data-feeds**。

设置前置检查(首次运行)

if ! command -v bdata >/dev/null 2>&1; then
    echo "bdata CLI 未安装 — 参见 bright-data-best-practices/references/cli-setup.md"
elif ! bdata zones >/dev/null 2>&1; then
    echo "bdata 未认证 — 运行:bdata login (或:bdata login --device 用于 SSH)"
fi

任一检查失败时,停止并跳转至 skills/bright-data-best-practices/references/cli-setup.md

选择你的路径

场景操作
单一关键词查询,仅需 SERPbdata search "<query>" --engine google --json --pretty
分页 SERP(更多结果)循环使用 --page 0--page 1 …(从 0 开始索引)
多个查询使用 shell 循环读取查询文件
意图驱动 / 语义搜索(非关键词)bdata discover "<query>" --intent "<intent>" --num-results 20
需要结果中附带页面正文,一次调用完成bdata discover ... --include-content
新闻 / 图片 / 购物类 SERPbdata search "<query>" --type news(或 imagesshopping
需要 Amazon/LinkedIn/TikTok 等结构化数据**停止 — 转交至 data-feeds**
已有 URL,需提取内容**转交至 scrape**

执行操作

核心命令示例:

# Google SERP,返回结构化 JSON
bdata search "site:example.com privacy policy" --engine google --json --pretty

# 本地化 Bing 结果(德语结果,德语语言)
bdata search "datenschutz" --engine bing --country de --language de --json

# 第二页结果(0 索引)
bdata search "machine learning papers" --page 1 --json

# 移动端 SERP(排名与桌面不同)
bdata search "best coffee shops" --device mobile --json

# 新闻垂直类结果
bdata search "openai" --type news --json --pretty

# 意图驱动的发现
bdata discover "enterprise LLM platforms" \
    --intent "vendor pages with pricing" \
    --num-results 15 --json

# 包含页面内容的发现(Markdown 格式输出)
bdata discover "webhook best practices" \
    --include-content --num-results 10 -o results.json

# 带日期范围过滤的发现
bdata discover "react server components" \
    --start-date 2025-01-01 --end-date 2025-12-31 --num-results 20

完整参数参考:[references/flags.md](references/flags.md)。

searchdiscover — 选择正确的工具

你想要应使用
“这个关键词在 Google 上排第几”search
“匹配这个含义/意图的页面”discover
“新闻 / 图片 / 购物类垂直 SERP”search --type <vertical>
“结果 + 页面正文一次性获取”discover --include-content
“跨查询去重 / 语义排序”discover

验证检查

  1. JSON 可正常解析:运行 jq . <output> 返回状态码 0。
  2. 结果数组非空:若为空,说明查询无结果,应放宽查询条件后重试。不要在无结果情况下声称成功,除非明确告知用户。
  3. 必填字段存在:

- search:结果位于 .organic[];每个条目包含 titlelink

- discover:结果位于 .results[];每个条目包含 titlelink;若使用 --include-content,还包含 content

  1. **对于 discover --include-content**:content 字段中不应出现以下屏蔽页标识符(不区分大小写):

- Access Denied

- Just a moment

- Attention Required

- Checking your browser

- captcha

- cf-browser-verification

- cloudflare(且总内容小于 2KB)

  1. 地理合理性检查:若期望特定国家的结果,检查前几条结果的 TLD 或语言。若定位错误,应显式添加 --country--language 重新运行。

风险提示

  • 使用 search 从 Amazon、LinkedIn、TikTok 等平台抓取内容,而 data-feeds 可以单次调用返回干净结构化数据。
  • 盲目抓取所有 SERP 结果 —— 应先过滤(域名白名单、标题含关键词、相关性启发式规则)。
  • 混淆 search(关键词匹配)与 discover(语义匹配)。两者回答的是不同问题。
  • 多个查询未对结果集中的 URL 做去重,直接进行抓取。
  • 认为 SERP 排名是全局统一的 —— 实际受地理位置和设备影响。始终显式设置 --country--device 以保证可复现性。
  • --page 当作结果数量上限 —— 它是页码索引,每页约 10 条结果。
  • 假设 SERP 结果都在 .results[] —— 对于 bdata search,实际位于 .organic[]。(discover 使用 .results[]。)
  • 硬编码 --num-results 100discover,而未意识到该流程会持续轮询直到满足数量,可能导致执行缓慢。

参考资料

  • [references/flags.md](references/flags.md) — searchdiscover 的完整参数说明,含使用场景建议。
  • [references/patterns.md](references/patterns.md) — 多查询去重、SERP → 过滤 → 抓取流程、searchdiscover 的选择逻辑、旧版 curl 回退方案、共享验证清单。
  • [references/examples.md](references/examples.md) — (1)单个 Google 查询,(2)本地化 Bing,(3)批量查询 + 去重生成 URL 列表,(4)discover --include-content 端到端示例。
MB
@meirk-brd

已收录 1 个 Skill

相关推荐