Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

bright-data-best-practices

Bright Dataのインテグレーションをベストプラクティスに基づいてプロダクション品質で構築するためのスキル。Webスクレイピング、検索、ブラウザ自動化、構造化データ抽出をClaude CodeやCursorなどのコーディングアシスタントで実装する際のリファレンスとして機能します。Web Unlocker API、SERP API、Web Scraper API、Browser API(Scraping Browser)をカバーしています。

description の原文を見る

Build production-ready Bright Data integrations with best practices baked in. Reference documentation for developers using coding assistants (Claude Code, Cursor, etc.) to implement web scraping, search, browser automation, and structured data extraction. Covers Web Unlocker API, SERP API, Web Scraper API, and Browser API (Scraping Browser).

SKILL.md 本文

CLI セットアップ リファレンス

Bright Data CLI (bdata) のインストール、認証、トラブルシューティングは、単一の規範的なドキュメント場所で管理されています:

references/cli-setup.md

bdata をシェルアウトするタスクを実行する前に、このドキュメントを参照してください。

Bright Data APIs

Bright Data は、大規模なウェブデータ抽出のためのインフラストラクチャを提供します。4 つの主要な API が異なるユースケースをカバーしており、常にジョブに最も適切なツールを選択してください。

適切な API を選択する

ユースケースAPI理由
URL でページをスクレイプ (操作なし)Web UnlockerHTTP ベース、自動的にボット検出をバイパス、最も安い
Google / Bing / Yandex 検索結果SERP APISERP 抽出に特化、構造化データを返す
Amazon、LinkedIn、Instagram、TikTok などから構造化データを取得Web Scraper API事前構築されたスクレイパー、パース不要
クリック、スクロール、フォーム入力、JS 実行、XHR インターセプトBrowser API完全なブラウザオートメーション
Puppeteer / Playwright / Selenium オートメーションBrowser APICDP/WebDriver 経由で接続

認証パターン (すべての API)

すべての API は同じ認証モデルを共有しています。以下の環境変数は、REST API の直接統合に適用されます。bdata CLI を使用している場合、bdata login がこれらすべてを自動的に処理します (参照: references/cli-setup.md)。

export BRIGHTDATA_API_KEY="your-api-key"         # コントロールパネル > アカウント設定から取得
export BRIGHTDATA_UNLOCKER_ZONE="zone-name"       # Web Unlocker ゾーン名
export BRIGHTDATA_SERP_ZONE="serp-zone-name"      # SERP API ゾーン名
export BROWSER_AUTH="brd-customer-ID-zone-NAME:PASSWORD"  # Browser API 認証情報

Web Unlocker および SERP API の REST API 認証ヘッダー:

Authorization: Bearer YOUR_API_KEY

Web Unlocker API

HTTP ベースのスクレイピングプロキシ。ブラウザ操作なしで簡単なページ取得に最適です。

エンドポイント: POST https://api.brightdata.com/request

import requests

response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "zone": "YOUR_ZONE_NAME",
        "url": "https://example.com/product/123",
        "format": "raw"
    }
)
html = response.text

キーパラメータ

パラメータ説明
zonestringゾーン名 (必須)
urlstringターゲット URL (http:// または https:// を含む) (必須)
formatstring"raw" (HTML) または "json" (構造化ラッパー) (必須)
methodstringHTTP メソッド、デフォルト "GET"
countrystring地理的ターゲティング用 2 文字 ISO コード (例: "us""de")
data_formatstring変換: "markdown" または "screenshot"
asyncboolean非同期モード用 true

クイックパターン

# Markdown を取得 (LLM 入力に最適)
response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": url, "format": "raw", "data_format": "markdown"}
)

# 地理的ターゲティング付きリクエスト
json={"zone": ZONE, "url": url, "format": "raw", "country": "de"}

# デバッグ用スクリーンショット
json={"zone": ZONE, "url": url, "format": "raw", "data_format": "screenshot"}

# バルク処理用非同期
json={"zone": ZONE, "url": url, "format": "raw", "async": True}

重要なルール: Web Unlocker を Puppeteer、Playwright、Selenium、または anti-detect ブラウザと一緒に使用しないでください。代わりに Browser API を使用してください。

references/web-unlocker.md を参照して、プロキシインターフェース、特殊ヘッダー、非同期フロー、機能、課金を含む完全なリファレンスを確認してください。


SERP API

Google、Bing、Yandex、DuckDuckGo の構造化検索エンジン結果抽出。

エンドポイント: POST https://api.brightdata.com/request (Web Unlocker と同じ)

response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "zone": "YOUR_SERP_ZONE",
        "url": "https://www.google.com/search?q=python+web+scraping&brd_json=1&gl=us&hl=en",
        "format": "raw"
    }
)
data = response.json()
for result in data.get("organic", []):
    print(result["rank"], result["title"], result["link"])

必須 Google URL パラメータ

パラメータ説明
q検索クエリq=python+web+scraping
brd_jsonパース済み JSON 出力brd_json=1 (データパイプラインでは常に使用)
gl検索対象国gl=us
hl言語hl=en
startページネーション オフセットstart=10 (ページ 2)、start=20 (ページ 3)
tbm検索タイプtbm=nws (ニュース)、tbm=isch (画像)、tbm=vid (ビデオ)
brd_mobileデバイスbrd_mobile=1 (モバイル)、brd_mobile=ios
brd_browserブラウザbrd_browser=chrome
brd_ai_overviewAI Overview をトリガーbrd_ai_overview=2
uuleエンコードされたジオロケーション正確なロケーション ターゲティング用

注: num パラメータは 2025 年 9 月時点で 廃止予定 です。ページネーションには start を使用してください。

パース済み JSON レスポンス構造

{
  "organic": [{"rank": 1, "global_rank": 1, "title": "...", "link": "...", "description": "..."}],
  "paid": [],
  "people_also_ask": [],
  "knowledge_graph": {},
  "related_searches": [],
  "general": {"results_cnt": 1240000000, "query": "..."}
}

Bing キーパラメータ

パラメータ説明
q検索クエリ
setLang言語 (4 文字推奨: en-US)
cc国コード
firstページネーション (10 ずつ増分: 1、11、21...)
safesearchoffmoderatestrict
brd_mobileデバイスタイプ

バルク SERP 用非同期

# 送信
response = requests.post(
    "https://api.brightdata.com/request",
    params={"async": "1"},
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": SERP_ZONE, "url": "https://www.google.com/search?q=test&brd_json=1", "format": "raw"}
)
response_id = response.headers.get("x-response-id")

# 取得 (取得呼び出しは課金されません)
result = requests.get(
    "https://api.brightdata.com/serp/get_result",
    params={"response_id": response_id},
    headers={"Authorization": f"Bearer {API_KEY}"}
)

課金: 成功したリクエスト 1,000 件ごとに支払い。非同期取得呼び出しは課金されません。

references/serp-api.md を参照して、Maps、Trends、Reviews、Lens、Hotels、Flights パラメータを含む完全なリファレンスを確認してください。


Web Scraper API

100 以上のプラットフォームから構造化データを抽出するための事前構築スクレイパー。パース ロジックは不要です。

同期エンドポイント: POST https://api.brightdata.com/datasets/v3/scrape 非同期エンドポイント: POST https://api.brightdata.com/datasets/v3/trigger

# 同期 (最大 20 URL、すぐに結果を返す)
response = requests.post(
    "https://api.brightdata.com/datasets/v3/scrape",
    params={"dataset_id": "YOUR_DATASET_ID", "format": "json"},
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"input": [{"url": "https://www.amazon.com/dp/B09X7M8TBQ"}]}
)

if response.status_code == 200:
    data = response.json()  # 結果は即座に利用可能
elif response.status_code == 202:
    snapshot_id = response.json()["snapshot_id"]  # 完了をポーリング

パラメータ

パラメータ説明
dataset_idstringスクレイパー ライブラリのスクレイパー識別子 (必須)
formatstringjson (デフォルト)、ndjsonjsonlcsv
custom_output_fieldsstringパイプ区切りフィールド: url|title|price
include_errorsboolean結果にエラー情報を含める

リクエスト ボディ

{
  "input": [
    { "url": "https://www.amazon.com/dp/B09X7M8TBQ" },
    { "url": "https://www.amazon.com/dp/B0B7CTCPKN" }
  ]
}

非同期結果のポーリング

import time

# トリガー
snapshot_id = requests.post(
    "https://api.brightdata.com/datasets/v3/trigger",
    params={"dataset_id": DATASET_ID, "format": "json"},
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"input": [{"url": u} for u in urls]}
).json()["snapshot_id"]

# ポーリング
while True:
    status = requests.get(
        f"https://api.brightdata.com/datasets/v3/progress/{snapshot_id}",
        headers={"Authorization": f"Bearer {API_KEY}"}
    ).json()["status"]

    if status == "ready": break
    if status == "failed": raise Exception("Job failed")
    time.sleep(10)

# ダウンロード
data = requests.get(
    f"https://api.brightdata.com/datasets/v3/snapshot/{snapshot_id}",
    params={"format": "json"},
    headers={"Authorization": f"Bearer {API_KEY}"}
).json()

進捗ステータス値: startingrunningready | failed データ保持: 30 日間。 課金: 配信されたレコード単位。失敗した無効な入力 URL も課金対象です。

references/web-scraper-api.md を参照して、スクレイパー タイプ、出力形式、配信オプション、課金詳細を含む完全なリファレンスを確認してください。


Browser API (Scraping Browser)

CDP/WebDriver を使用した完全ブラウザオートメーション。CAPTCHA、フィンガープリント、anti-bot 検出を自動的に処理します。

接続:

  • Playwright/Puppeteer: wss://${AUTH}@brd.superproxy.io:9222
  • Selenium: https://${AUTH}@brd.superproxy.io:9515
const { chromium } = require("playwright-core");

const AUTH = process.env.BROWSER_AUTH;
const browser = await chromium.connectOverCDP(`wss://${AUTH}@brd.superproxy.io:9222`);
const page = await browser.newPage();
page.setDefaultNavigationTimeout(120000); // 常に 2 分に設定

await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
const html = await page.content();
await browser.close();
from playwright.async_api import async_playwright

async with async_playwright() as p:
    browser = await p.chromium.connect_over_cdp(f"wss://{AUTH}@brd.superproxy.io:9222")
    page = await browser.new_page()
    page.set_default_navigation_timeout(120000)
    await page.goto("https://example.com", wait_until="domcontentloaded")
    html = await page.content()
    await browser.close()

カスタム CDP 関数

関数目的
Captcha.solve手動で CAPTCHA を解く
Captcha.setAutoSolveCAPTCHA 自動解決を有効/無効にする
Proxy.setLocation正確なジオロケーションを設定 (goto の前に呼び出し)
Proxy.useSessionセッション間で同じ IP を保持
Emulation.setDeviceデバイス プロファイルを適用 (iPhone 14 など)
Emulation.getSupportedDevices利用可能なデバイス プロファイルを一覧表示
Unblocker.enableAdBlock広告をブロックして帯域幅を節約
Unblocker.disableAdBlock広告を再度有効にする
Input.typeバルク フォーム入力用の高速テキスト入力
Browser.addCertificateセッション用のクライアント SSL 証明書をインストール
Page.inspectライブ セッション用の DevTools デバッグ URL を取得
// カスタム関数用 CDP セッション パターン
const client = await page.target().createCDPSession();

// タイムアウト付き CAPTCHA 解決
const result = await client.send("Captcha.solve", { timeout: 30000 });

// 正確なジオロケーション (goto の前に必須)
await client.send("Proxy.setLocation", {
  latitude: 37.7749,
  longitude: -122.4194,
  distance: 10,
  strict: true
});

// 不要なリソースをブロック
await client.send("Network.setBlockedURLs", { urls: ["*google-analytics*", "*.ads.*"] });

// デバイス エミュレーション
await client.send("Emulation.setDevice", { deviceName: "iPhone 14" });

セッション ルール

  • セッションあたり 1 回の初期ナビゲーション — 新しい URL = 新しいセッション
  • アイドル タイムアウト: 5 分
  • 最大期間: 30 分

ジオロケーション

  • 国レベル: 認証情報ユーザー名に -country-us を追加
  • EU 全体: -country-eu を追加 (29 以上のヨーロッパ諸国をルーティング)
  • 正確: Proxy.setLocation CDP コマンドを使用 (ナビゲーション前)

エラーコード

コード問題修正
407ポート番号が間違っているPlaywright/Puppeteer → 9222、Selenium → 9515
403不正な認証認証情報形式とゾーン タイプを確認
503サービス スケーリング1 分待機して再接続

課金: トラフィック ベースのみ。画像/CSS/フォントをブロックしてコストを削減します。

references/browser-api.md を参照して、すべての CDP 関数、帯域幅最適化、CAPTCHA パターン、デバッグを含む完全なリファレンスを確認してください。


詳細リファレンス

  • references/web-unlocker.md — Web Unlocker: 完全なパラメータ リスト、プロキシ インターフェース、特殊ヘッダー、非同期フロー、機能、課金、アンチパターン
  • references/serp-api.md — SERP API: すべての Google パラメータ (Maps、Trends、Reviews、Lens、Hotels、Flights)、Bing パラメータ、パース済み JSON 構造、非同期、課金
  • references/web-scraper-api.md — Web Scraper API: 同期対非同期、すべてのパラメータ、ポーリング、スクレイパー タイプ、出力形式、課金
  • references/browser-api.md — Browser API: 接続文字列、セッション ルール、すべての CDP 関数、ジオターゲティング、帯域幅最適化、CAPTCHA、デバッグ、エラー コード

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
brightdata
リポジトリ
brightdata/skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/brightdata/skills / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: brightdata · brightdata/skills · ライセンス: MIT