Tony Wang4 分で読めます2026年版 Brave Search のスクレイピング方法(API と Python)
2026年に Brave Search をスクレイピングする3つの方法 — 自前の Python、ノーコードツール、または Web・ニュース・動画結果を返す構造化 API — と、法律の基礎知識を解説します。
2026 年に Brave Search をスクレイピングする最速の方法は、Brave のアンチボット対策をヘッドレスブラウザで自力で突破するのではなく、正規化された JSON を返す構造化検索 API を呼ぶことです。この API は、タイトル・URL・スニペット・順位を含むオーガニック結果に加え、ニュース・動画・ディスカッションのモジュールを返します。Python で自前のスクレイパーを組むこともできますが、Brave のマークアップ変更とレート制限のせいで動作を維持するコストが高くつきますし、Brave 自身の API はクエリ単位で課金されます。
Brave は 独自の独立した検索インデックス を運用しており、Google や Bing の再販ではありません。だからこそ各チームがこれを収集するのです。順位追跡、ソースの多様性、AI グラウンディングのワークフローに、Google 系・Bing 系以外のカバレッジをもたらしてくれます。
Brave Search をスクレイピングするのは合法ですか?
公開されている検索結果のスクレイピングは、一般に非公開データやペイウォールの内側のデータへのアクセスとは別物として扱われます。ただし「公開」だからといって何でも許可されているわけではありません。実務上の目安は次のとおりです。
- 公開されている 結果ページだけを収集する。ログインや個人アカウントは使わない。
- レート制限を守り、サービスを劣化させない。
- 商用利用の前に Brave の利用規約と自国の法律を確認する。データの使い方の責任はあなたにあります。
- 結果を適法に保存・処理する。特に個人データになり得るものには注意する。
以上はいずれも法的助言ではありません。hiQ v. LinkedIn や CFAA の背景を含む詳しい解説は 2026 年、Web スクレイピングは合法か? をご覧ください。
選択肢 1: Python での自前実装(そしてなぜ壊れるのか)
素朴なやり方は、結果ページを取得して HTML をパースするものです。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://search.brave.com/search",
params={"q": "ai agents"},
headers={"User-Agent": "Mozilla/5.0", "Accept-Language": "en-US,en;q=0.9"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Brave's result blocks are unlabeled and shift often — reverse-engineer selectors per block,
# normalize to a stable shape, then export (e.g. with csv.DictWriter(...).writerows(rows))
これは一度は動きますが、すぐに壊れます。繰り返し発生するコストは次のとおりです。
- アンチボット対策 がデータセンターの IP や不自然なリクエストパターンを検知するため、ローテーティングプロキシが必要になります。
- マークアップの変化 — 結果コンテナやクラス名が変わり、セレクタが何も返さずに黙って失敗します。
- モジュールの多様さ — ニュース、動画、ディスカッション、ナレッジカードはそれぞれ独自のパーサーが必要です。
- 構造がない — 結局すべてを自分で安定したスキーマに正規化しなければなりません。
コストの大半は最初のスクレイピングではなく、レイアウトとアンチボットの変化を越えて動かし続けることにあります。
選択肢 2: ノーコードや既製のツール
ブラウザ拡張機能やポイント&クリック式のスクレイパーは、一回限りのエクスポートには十分ですが、データパイプラインの中では扱いにくいものです。スケジュール実行やバージョン管理が難しく、ページが変われば結局壊れます。プロダクトやダッシュボードに供給する継続的な収集には、API のほうが適しています。
選択肢 3: 構造化された Brave Search API
Crawlora の Brave Search API は、リクエスト処理、プロキシルーティング、パース、正規化を、ドキュメント化された 1 つのエンドポイントの背後にまとめています。クエリを送ると、正規化された JSON が返ってきます。
curl -G "https://api.crawlora.net/api/v1/brave/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
--data-urlencode "q=ai agents" \
--data-urlencode "country=us" \
--data-urlencode "lang=en-us"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/brave/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"q": "ai agents", "country": "us", "lang": "en-us"},
)
for row in resp.json()["data"]["results"]:
print(row["position"], row["title"], row["url"])
レスポンスは、そのまま保存できる正規化された JSON です(示しているフィールドは説明用です。最新のスキーマは ドキュメント をご確認ください)。
{
"code": 200,
"msg": "OK",
"data": {
"query": "ai agents",
"results": [
{
"position": 1,
"title": "Example result title",
"url": "https://example.com/",
"hostname": "example.com",
"description": "Snippet text shown under the result."
}
],
"news": [],
"videos": []
}
}
同じキーが結果タイプ全体に展開されます。offset でページ送りするか、ニュース・動画・画像のエンドポイントを呼び出せます。
news = requests.get("https://api.crawlora.net/api/v1/brave/news",
headers={"x-api-key": "YOUR_API_KEY"}, params={"q": "ai agents"}).json()["data"]
videos = requests.get("https://api.crawlora.net/api/v1/brave/videos",
headers={"x-api-key": "YOUR_API_KEY"}, params={"q": "ai agents"}).json()["data"]
Crawlora の API キー 1 つですべてのエンドポイントを呼び出せます。Azure 方式のプロジェクトも、予算を組むためのクエリ単位の課金も不要です。
収集できるもの
- オーガニックの Web 結果: 順位、タイトル、URL、ホスト名、説明スニペット
- Brave が返す場合の関連クエリとディスカッション結果
- 専用エンドポイント経由のニュース・動画・画像モジュール
offsetによるページネーション、countryとlangによる国・言語のローカライズ
制約とよくある課題
- Brave 自身の API は従量課金です。 Brave は公式の Search API を提供していますが、2026 年初頭時点では従来型の無料枠はありません。新規ユーザーには月あたり約 $5 分のクレジット(約 1,000 クエリ)が付与され、それを超えるとクエリ単位で課金されます。Crawlora の Brave エンドポイントは、Google や Bing と同じキーからのクレジット制です。
- 独立したインデックス、異なる結果。 Brave の約 300 億ページのインデックスは、Google や Bing とは異なる順位付けをします。それが狙いではありますが、カバレッジや並び順が異なることを見込んで、独立した系列として追跡してください。
- DIY にはアンチボット対策が立ちはだかる。 直接スクレイピングは、データセンター IP の検知や、ラベルのない変化するマークアップに直面します。構造化 API は、プロキシ・レンダリング・正規化を 1 つのキーの背後で処理します。
- モジュールごとのパース。 ニュース、動画、画像、ディスカッションの各ブロックはそれぞれ独自の形をしています。1 つの巨大なパーサーではなく、専用エンドポイントを使ってください。
出典
この機能が役立つ場面
まずは無料でお試しください: 任意の公開 URL を 無料 Web スクレイパー に通すか、アンチボットチェッカー でサイトがボットをブロックするかどうかを確認できます。登録は不要です。
Brave は、Google や Bing と並べた 2 番目・3 番目のエンジン として最も役立ちます。同じキーワードを各エンジンに通せば、順位の変動がサイト全体のものか、それとも特定のエンジンに固有のものかを判別できます。詳しくは SERP モニタリング API の仕組み と SERP モニタリングのユースケース をご覧ください。エンジンをまたいだ順位追跡には、Bing Search API と Google Search API を組み合わせてください。レスポンスの形が揃っているので、同じコードで 3 つすべてをスナップショットできます。順位の変動が追う価値のあるものかを判断するには、エンジンの結果を検索需要と並べてみましょう。Google Trends をスクレイピングする方法 をご覧ください。クエリが Web 全体ではなくローカルなものなら、Google Maps をスクレイピングする方法 で場所の結果に切り替えてください。より広いツール比較は 2026 年のベスト SERP API をご覧ください。
まずは Playground でエンドポイントを試し、API ドキュメント でリクエストとレスポンスのスキーマを読み、料金ページ でクレジットのコストを確認して始めましょう。
よくある質問
ブロックされずに Brave Search をスクレイピングできますか?
Crawlora は API の背後でプロキシルーティング、リクエストのペース調整、リトライを処理し、ページが利用できないときは壊れた HTML ではなくドキュメント化されたエラーを返します。1つのエンドポイントを呼ぶだけで、正規化された JSON が得られます。
Brave には公式の検索 API はありますか?
あります。ただし従量課金です。2026年初頭時点で従来型の無料枠はなく、新規ユーザーには月あたり約 $5 分のクレジット(約1,000クエリ)が付与され、それを超えるとクエリ単位で課金されます。Crawlora の Brave Search エンドポイントは、Google や Bing と共有する1つのキーから Web・ニュース・動画・画像・サジェスト結果を正規化された JSON として返す、クレジット制の代替手段です。
Brave Search は Google や Bing とどう違いますか?
Brave は独自の独立したインデックス(約300億ページで、Google や Bing の再販ではありません)を運用しているため、結果の順位付けが異なり、順位追跡・ソースの多様性・AI グラウンディングに Google 系・Bing 系以外のカバレッジを追加します。他のエンジンと並べて独立した系列として追跡してください。
Brave Search API はどんなデータを返しますか?
順位・タイトル・URL・ホスト名・スニペットを含むオーガニック結果に加え、Brave が含める場合の関連クエリと、ニュース・動画・画像のモジュールを返します。ページ送りには offset を、ローカライズには country と lang を使います。
順位追跡に使えますか?
使えます。各レスポンスには順位と URL が含まれるので、スケジュールに沿って記録すれば Brave の順位トラッカーが構築できます。同じキーワードを Google と Bing にも通せば、エンジン横断で比較できます。
データはどのくらいの頻度で更新できますか?
プランのクレジットが許す限り何度でも更新できます。各レスポンスはリクエスト時点の Brave を反映するので、定期的なスナップショットをスケジュールして変化を監視してください。