scrape について
Bright Data CLI で URL の内容を Markdown、HTML、JSON、スクリーンショットとして取得するスキルです。単一 URL や一括処理に対応し、特定プラットフォームのデータ取得は別スキルへ振り分けます。
主な機能
- 01URL 内容を複数形式で取得
- 02単一 URL と URL の一括処理
- 03ページネーション付き一覧に対応
- 04出力の検証とブロックページ検出
- 05プラットフォーム別データ取得を data-feeds に振り分け
活用シーン
- 01記事本文の Markdown 化
- 02URL からの HTML または JSON 取得
- 03ページネーション付き一覧の処理
- 04スクレイピング結果がブロックページか確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ brightdata/ skills --skill scrapeインストール後、Claude Code で/scrapeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/examples.mdflags.mdpatterns.md詳細
Bright Data — スクレイピング
Bright Data CLI を介して、1 つ以上の URL からクリーンなコンテンツ(Markdown、HTML、JSON、スクリーンショット)を取得します。このスキルは、「生データまたは軽く構造化されたコンテンツを取得する」役割を担います(「fetch raw or lightly-structured content」)。プラットフォーム固有の構造化データ(Amazon、LinkedIn、TikTok など)の場合は、そこで停止して、代わりに data-feeds を使用してください。セレクターロジックなしでクリーンな JSON を取得できます。
セットアップの確認(最初に実行)
スクレイピングを行う前に、CLI がインストールされ、認証済みであることを確認します。
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 を案内してください。従来の curl によるフォールバックをユーザーに確認せずに試してはいけません。
方法を選択
| 状況 | 対応 |
|---|---|
| URL が 1 つ | bdata scrape <url> -f markdown |
| 小規模なリスト(約 20 件以下) | シェルループで 1 件ずつ実行(references/patterns.md を参照) |
| 大規模なリスト(数十件以上) | 並列数を制限して xargs -P 4 を使用(references/patterns.md を参照) |
| ページネーション付きの一覧 | 1 ページ目をスクレイピング → 次ページの URL を抽出 → 追加 → 繰り返し(references/examples.md を参照) |
| JavaScript への依存が大きい/ログインが必要/操作が必要 | bdata browser に切り替え(brightdata-cli スキルを参照) |
| Amazon、LinkedIn、TikTok、Instagram、YouTube、Reddit、… | 停止し、data-feeds に引き継いでください |
| URL がなく、トピックだけがある | search に引き継いでください |
操作
基本コマンド:
# Clean markdown (default)
bdata scrape "https://example.com/article" -f markdown -o article.md
# Raw HTML (when you need the DOM)
bdata scrape "https://example.com" -f html -o page.html
# Structured JSON (when the Unlocker returns parsed fields)
bdata scrape "https://example.com" -f json --pretty -o page.json
# Visual snapshot (saves PNG)
bdata scrape "https://example.com" -f screenshot -o page.png
# Geo-targeted (override the exit country)
bdata scrape "https://example.com" --country de -f markdown
すべてのフラグのリファレンス:references/flags.md。
検証の確認(成功を報告する前に実行)
- 出力が空でないこと:
test -s "$out_path"を実行します。標準出力の場合は、少なくとも 200 バイトのコンテンツがあることを確認します。 - ブロックページではないこと — 出力に以下のいずれかの特徴的な文字列が含まれていないか、大文字・小文字を区別せずに grep で検索します。
Access DeniedJust a momentAttention RequiredChecking your browsercaptchacf-browser-verificationcloudflare(本文全体が 2KB 未満の場合)
- タスクに必要な目印が存在すること: たとえば、商品ページには価格のパターン(
\$\d)、記事には少なくとも 1 つの<h1>または#見出しが含まれている必要があります。 - 失敗した場合のエスカレーション手順:
--countryを別の値にして再試行します(例:対象サイトの接続元が米国の場合は--country de)。- 完全な JavaScript レンダリングのため
bdata browserに切り替えます(brightdata-cliスキルに引き継ぎます)。
上記のすべての確認に合格するまで、成功を報告しないでください。
注意事項
- 出力を確認せずに成功を報告すること。
2>/dev/nullでエラーを隠すこと — 認証エラーやレート制限エラーを見落とします。- Amazon/LinkedIn/TikTok/Instagram/YouTube/Reddit の URL に
bdata scrapeを実行すること — これらはdata-feedsがサポートしており、構造化データを直接返します。スクレイピングすると構造が失われます。 - 同じタスク内で同じ URL を繰り返しスクレイピングすること — 最初の結果をキャッシュしてください。
- 並列数に上限を設けて
xargs -P 4(または同様の方法)を使わずに、大規模なリストに対してbdata scrapeを順番にループ実行すること。 api.brightdata.comに直接curlすること — これは従来の方法であり、CLI を利用できない場合に限ります。
リファレンス
references/flags.md— 各フラグと使用する場面についての説明。references/patterns.md— シェルループによるバッチ処理、xargsの並列実行、ページネーションの手順、再試行/バックオフ、ブロックページからの復旧手順、従来のcurlによるフォールバック。references/examples.md— (1)単一ページを Markdown に変換、(2)並列数を制限して URL のリストをバッチ処理、(3)ページネーション付きの一覧、(4)ブロックページからの復旧。
コメント
Markdown 対応