使用 Bright Data CLI 进行网页搜索 — `bdata search` 用于获取 Google/Bing/Yandex SERP,`bdata discover` 用于获取意图排序的语义结果。在用户…时使用。
Find things on the web. Two commands live in this skill:
bdata search — classic keyword SERP (Google/Bing/Yandex). Best when you want "what ranks for keyword X."bdata discover — AI intent-ranked discovery with optional page content. Best when you want "pages about topic Y that match intent Z."For structured data from a known platform (Amazon, LinkedIn, TikTok, …), stop and use data-feeds instead.
bash
if ! command -v bdata >/dev/null 2>&1; then
echo "bdata CLI not installed — see bright-data-best-practices/references/cli-setup.md"
elif ! bdata zones >/dev/null 2>&1; then
echo "bdata not authenticated — run: bdata login (or: bdata login --device for SSH)"
fi
Halt and route to skills/bright-data-best-practices/references/cli-setup.md if either check fails.
SituationActionSingle keyword query, just SERPbdata search "<query>" --engine google --json --prettyPaginated SERP (more results)loop --page 0, --page 1, … (0-indexed)Multiple queriesshell loop over a queries fileIntent-ranked / semantic (not keyword)bdata discover "<query>" --intent "<intent>" --num-results 20Want page bodies along with results, one passbdata discover ... --include-contentNews / images / shopping SERPbdata search "<query>" --type news (or images, shopping)Want Amazon/LinkedIn/TikTok/… structured datastop — hand off to data-feedsHave URLs, want contenthand off to scrape
Core commands:
bash
# Google SERP, structured JSON
bdata search "site:example.com privacy policy" --engine google --json --pretty
# Localized Bing (German results, German language)
bdata search "datenschutz" --engine bing --country de --language de --json
# Second page of results (0-indexed)
bdata search "machine learning papers" --page 1 --json
# Mobile SERP (rankings differ from desktop)
bdata search "best coffee shops" --device mobile --json
# News vertical
bdata search "openai" --type news --json --pretty
# Intent-ranked discovery
bdata discover "enterprise LLM platforms" \
--intent "vendor pages with pricing" \
--num-results 15 --json
# Discovery with page content in markdown
bdata discover "webhook best practices" \
--include-content --num-results 10 -o results.json
# Date-filtered discovery
bdata discover "react server components" \
--start-date 2025-01-01 --end-date 2025-12-31 --num-results 20
Full flag reference: references/flags.md.
search vs discover — pick the right one#You wantUse"What Google ranks for this exact keyword"search"Pages that match this meaning/intent"discover"News / images / shopping vertical SERP"search --type <vertical>"Results + page bodies in one call"discover --include-content"Dedup / semantic ranking across queries"discover
JSON parses cleanly: jq . <output> returns 0.
Result array non-empty — if empty, the query is legitimately zero-result; relax the query and re-run. Don't claim success on empty results without telling the user.
Required fields present:
search: results live at .organic[]; each has title + linkdiscover: results live at .results[]; each has title + link; if --include-content, also contentFor discover --include-content: no block-page signatures in the content field (same list as scrape, case-insensitive):
Access DeniedJust a momentAttention RequiredChecking your browsercaptchacf-browser-verificationcloudflare (with < 2KB total body)Geo sanity: if the user expected country-specific results, inspect TLDs / languages of top results. If mis-localized, re-run with explicit --country and --language.
search to fetch content from Amazon, LinkedIn, TikTok, etc. when data-feeds returns clean structured data in one call.search (keyword) with discover (semantic). They answer different questions.--country and --device explicitly for reproducibility.--page as a result count — it's a page index, not a limit. Each page returns ~10 results..results[] — for bdata search they live at .organic[]. (Discover uses .results[].)--num-results 100 on discover without realizing the pipeline polls until that many are found; can be slow.references/flags.md — full flags for search and discover with when-to-use notes.references/patterns.md — multi-query dedup, SERP → filter → scrape pipeline, search vs discover decision, legacy curl fallback, shared verification checklist.references/examples.md — (1) single Google query, (2) localized Bing, (3) batch queries + dedup into URL list, (4) discover --include-content end-to-end.