search について
Bright Data — Searchは、キーワード検索結果や意図に合うページを探すためのスキルです。bdata CLIから通常の検索とセマンティック検索を使い分け、検索種別、地域設定、ページ内容の取得を指定できます。
主な機能
- 01Google、Bing、Yandexのキーワード検索
- 02意図に基づくセマンティック検索
- 03結果とページ本文の取得
- 04ニュース、画像、ショッピング検索
- 05ページネーションと地域設定
活用シーン
- 01キーワードの検索順位を確認
- 02トピックの意図に合うページを発見
- 03検索結果とページ本文を取得
- 04地域を指定してニュースや画像を検索
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ brightdata/ skills --skill searchインストール後、Claude Code で/searchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/examples.mdflags.mdpatterns.md詳細
Bright Data — 検索
ウェブ上の情報を見つけます。このスキルには2つのコマンドがあります。
bdata search— 従来型のキーワード SERP(Google/Bing/Yandex)です。「キーワード X で何が上位に表示されるか」を知りたい場合に最適です。bdata discover— AI による意図のランキング付き検索で、ページコンテンツも任意で取得できます。「意図 Z に合致するトピック Y 関連のページ」を探したい場合に最適です。
既知のプラットフォーム(Amazon、LinkedIn、TikTok など)の構造化データが必要な場合は、ここで止めて、代わりに data-feeds を使ってください。
セットアップゲート(最初に実行)
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
どちらかのチェックに失敗した場合は処理を中止し、skills/bright-data-best-practices/references/cli-setup.md を参照してください。
実行方法を選ぶ
| 状況 | アクション |
|---|---|
| 単一のキーワードクエリで、SERP のみ | bdata search "<query>" --engine google --json --pretty |
| ページネーション付き SERP(結果を増やす) | --page 0、--page 1、…をループします(0 始まり) |
| 複数のクエリ | クエリファイルを使ったシェルループ |
| 意図ランキング/セマンティック検索(キーワードではない) | bdata discover "<query>" --intent "<intent>" --num-results 20 |
| 1回の実行で結果とページ本文の両方が必要 | bdata discover ... --include-content |
| ニュース/画像/ショッピング SERP | bdata search "<query>" --type news(または images、shopping) |
| Amazon/LinkedIn/TikTok などの構造化データが必要 | ここで止めて、data-feeds に引き継いでください |
| URL があり、コンテンツが必要 | scrape に引き継いでください |
アクション
主要なコマンド:
# 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
すべてのフラグのリファレンス:references/flags.md。
search と discover の違い — 適切な方を選ぶ
| 必要なもの | 使用するもの |
|---|---|
| 「この正確なキーワードで Google が何を上位表示するか」 | search |
| 「この意味/意図に合致するページ」 | discover |
| 「ニュース/画像/ショッピングのカテゴリ別 SERP」 | search --type <vertical> |
| 「1回の呼び出しで結果とページ本文」 | discover --include-content |
| 「クエリ間の重複除去/セマンティックランキング」 | discover |
検証ゲート
- JSON が正しく解析できること:
jq . <output>が 0 を返します。 - 結果配列が空でないこと — 空の場合、クエリの結果が実際に0件です。クエリを緩和して再実行してください。ユーザーに伝えずに、空の結果で成功したと主張しないでください。
- 必須フィールドが存在すること:
search:結果は.organic[]にあり、各結果にtitleとlinkがありますdiscover:結果は.results[]にあり、各結果にtitleとlinkがあります。--include-contentを指定した場合は、contentもあります
discover --include-contentの場合:contentフィールドにブロックページの兆候がないこと(scrapeと同じリスト、大文字と小文字を区別しません):Access DeniedJust a momentAttention RequiredChecking your browsercaptchacf-browser-verificationcloudflare(全本文が 2KB 未満の場合)
- 地域の妥当性: ユーザーが特定の国の結果を期待していた場合は、上位の結果の TLD/言語を確認してください。地域が正しくない場合は、明示的に
--countryと--languageを指定して再実行してください。
注意事項
data-feedsを使えば1回の呼び出しでクリーンな構造化データが取得できるのに、Amazon、LinkedIn、TikTok などのコンテンツ取得にsearchを使う。- すべての SERP 結果を無条件にスクレイピングする — 先にフィルタリングしてください(ドメインの許可リスト、タイトル内のキーワード、関連性のヒューリスティックなど)。
search(キーワード)とdiscover(セマンティック)を混同する。これらは異なる質問に答えます。- 複数のクエリを実行し、スクレイピング前に結果セット間の URL を重複除去しない。
- SERP の順位は普遍的だと想定する — 地域とデバイスによってパーソナライズされます。再現性を確保するため、常に
--countryと--deviceを明示的に設定してください。 --pageを結果件数として使う — これはページインデックスであり、上限ではありません。各ページで約10件の結果が返されます。- SERP の結果が
.results[]にあると想定する —bdata searchでは.organic[]にあります(discoverでは.results[]を使います)。 - パイプラインが指定件数に達するまでポーリングすることを理解せず、
discoverに--num-results 100をハードコードする — 処理が遅くなる可能性があります。
参考資料
references/flags.md—searchとdiscoverのすべてのフラグと、使用するタイミングに関するメモです。references/patterns.md— 複数クエリの重複排除、SERP → フィルター → スクレイプのパイプライン、searchとdiscoverの使い分け、従来のcurlによるフォールバック、共通の検証チェックリストです。references/examples.md— (1)単一の Google クエリ、(2)ローカライズされた Bing、(3)複数クエリのバッチ処理と URL リストへの重複排除、(4)discover --include-contentのエンドツーエンドの例です。
コメント
Markdown 対応