search

search

热门

通过 Bright Data CLI 搜索网络 — `bdata search` 用于 Google/Bing/Yandex 的 SERP 结果,`bdata discover` 用于基于意图排序的语义结果。当用户需要 SERP 结果、需要 URL 以进行抓取,或希望进行语义网络发现并可选获取页面内容时使用。一旦选定目标 URL,则转交给 `scrape`;当用户需要来自已知平台的结构化数据时,则转交给 `data-feeds`。需要 Bright Data CLI;主动引导安装和登录(如果缺失)。

228Star
32Fork
更新于 2026/6/25
SKILL.md
readonly只读
name
search
description

通过 Bright Data CLI 搜索网络 — `bdata search` 用于 Google/Bing/Yandex 的 SERP 结果,`bdata discover` 用于基于意图排序的语义结果。当用户需要 SERP 结果、需要 URL 以进行抓取,或希望进行语义网络发现并可选获取页面内容时使用。一旦选定目标 URL,则转交给 `scrape`;当用户需要来自已知平台的结构化数据时,则转交给 `data-feeds`。需要 Bright Data CLI;主动引导安装和登录(如果缺失)。

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

选择路径

情况 操作
单个关键词查询,仅需 SERP bdata 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
新闻/图片/购物 SERP bdata 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

searchdiscover — 选择正确的命令

您想要 使用
“Google 对这个确切关键词的排名是什么” search
“符合此含义/意图的页面” discover
“新闻/图片/购物垂直领域 SERP” search --type <vertical>
“一次调用获取结果和页面正文” discover --include-content
“跨查询去重/语义排序” discover

验证检查

  1. JSON 解析正常: jq . <output> 返回 0。
  2. 结果数组非空 — 如果为空,则查询确实无结果;放宽查询条件并重新运行。不要在没有告知用户的情况下声称空结果成功。
  3. 必需字段存在:
    • search:结果位于 .organic[];每个结果包含 title + link
    • discover:结果位于 .results[];每个结果包含 title + link;如果使用 --include-content,还包含 content
  4. 对于 discover --include-content content 字段中不得出现阻止页面签名(与 scrape 相同列表,不区分大小写):
    • Access Denied
    • Just a moment
    • Attention Required
    • Checking your browser
    • captcha
    • cf-browser-verification
    • cloudflare (且总正文小于 2KB)
  5. 地理合理性: 如果用户期望特定国家的结果,检查顶部结果的 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[]。)
  • discover 上硬编码 --num-results 100,而未意识到管道会轮询直到找到那么多结果;可能很慢。

参考

  • references/flags.mdsearchdiscover 的完整标志及使用说明。
  • references/patterns.md — 多查询去重、SERP → 过滤 → 抓取管道、searchdiscover 决策、传统 curl 回退、共享验证清单。
  • references/examples.md — (1) 单个 Google 查询,(2) 本地化 Bing,(3) 批量查询 + 去重为 URL 列表,(4) discover --include-content 端到端。