Tony Wang5 分で読めますGoogle レビューをスクレイピングする方法 2026年版(API & Python)
2026年に Google のレビュー(評価、レビュー本文、投稿者、日付)を API 経由で構造化された JSON として収集する方法、公式 Places API が上限に達する理由、法的な基礎知識を解説します。
2026年に Google のレビューを取得する最速の方法は、Google Maps サイトを自分で自動化するのではなく、ビジネスをその Google の場所に解決し、その場所の詳細とレビューを正規化された JSON(評価、レビュー本文、投稿者、日付)として返す構造化された API を呼び出すことです。本ガイドでは、Google 自身の API がレビュー収集に不十分な理由、自前実装の手段となぜ壊れるのか、そして信頼できる方法を解説します。
これはGoogle Maps をスクレイピングする方法のレビューに焦点を当てた姉妹編です。ビジネスの完全なレコード(住所、営業時間、電話番号、カテゴリ)が必要ならそちらから始めてください。特にレビューのストリームが必要なら、このまま読み進めてください。
2026年に公式の Google レビュー API はありますか?
公式 API は 2 つありますが、どちらも多くの人が望むことをしません。 Google Places API は場所の詳細をレビュー込みで返しますが、1 つの場所につき最大 5 件のレビューまで、しかもキャッシュや表示方法を制限する規約付きです。自分のサイトに数件のレビューを表示するには十分ですが、あるビジネスの完全なレビュー履歴を収集したり、大規模に感情分析を行ったりするには使えません。別の Google Business Profile API はすべてのレビューを読めますが、自分が所有し確認済みの場所に限られます — つまり自社の掲載情報は監視できても、競合や市場のものは監視できません。
このギャップ — 任意のビジネスの完全な公開レビューストリームを取得する公式の方法がないこと — こそ、レビュー収集がいまだにスクレイピングやメンテナンス済みのスクレイピング API を通じて行われる理由です。
Google のレビューをスクレイピングするのは合法ですか?
Google のレビューは公開されており、公開データの収集は一般に非公開アカウントへのアクセスとは異なる扱いを受けます。ただし無条件ではありません。
- 公開されているレビューデータのみを収集してください。ログインが必要なコンテンツや非公開コンテンツは対象外です。
- レビューには個人データ(投稿者名)が含まれるため、保存や処理を行う場合は GDPR/CCPA に注意してください。可能な限り集計し、個人のプロファイルを作成しないようにしましょう。
- レート制限と Google の利用規約を尊重し、商用での再配布の前にお住まいの地域の法律を確認してください。
これは法的助言ではありません。詳しくは2026年、ウェブスクレイピングは合法ですか?をご覧ください。
選択肢 1:Python で自前実装する(そしてなぜ壊れるのか)
Maps のレビュー UI はクライアントサイドでレンダリングされ、防御されているため、単純な requests の呼び出しではほとんど何も得られません。よくある自前実装の手段はヘッドレスブラウザです。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.google.com/maps/place/...")
# click the reviews tab, then scroll the panel repeatedly to lazy-load more
for _ in range(10):
page.mouse.wheel(0, 3000)
page.wait_for_timeout(800)
reviews = page.query_selector_all("div.jftiEf") # brittle, changes often
うまく動くうちは動きます。繰り返し悩まされるのは次の点です。
- JavaScript レンダリング — レビューはクライアントサイドで読み込まれるため、
requestsではなく本物のブラウザが必要です。 - ボット検出 — Google はブラウザと IP をフィンガープリントします。データセンター IP やヘッドレス Chrome はすぐにフラグを立てられるため、レジデンシャルプロキシとステルスパッチが必要になります。
- スクロールページネーション — レビューは安定したページパラメータなしでスクロール時に遅延読み込みされるため、上限のないスクロールループを書いて、終わることを祈ることになります。
- 壊れやすいセレクタ — 難読化されたクラス名は予告なく変更され、パーサーを壊します。
選択肢 2:ノーコードや既製ツール
ブラウザ拡張機能やスプレッドシートのアドオンは、1 つの場所について数件のレビューをエクスポートできますが、保存・結合・スケジュール実行できる形で完全なストリームを提供してくれることはめったにありません。パイプラインやダッシュボード、製品に組み込むものには、JSON が欲しいところです。
選択肢 3:構造化された Google レビュー API
検索でビジネスを解決し、place エンドポイントからその詳細とレビューを取得しましょう — 正規化された JSON で、面倒を見るブラウザは不要です。まず place_id を見つけます。
curl -X POST "https://api.crawlora.net/api/v1/google/map/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "Blue Bottle Coffee, San Francisco"}'
次に、レビューを含む場所の詳細を取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1"
# 1) find the place
place = requests.post(f"{base}/google/map/search", headers=h,
json={"query": "Blue Bottle Coffee, San Francisco"}).json()["data"]
place_id = place["results"][0]["place_id"]
# 2) pull details + reviews (fields are illustrative — confirm in the docs)
detail = requests.get(f"{base}/google/map/place/{place_id}", headers=h).json()["data"]
print(detail["rating"], detail["reviews_count"])
for r in detail["reviews"]:
print(r["rating"], r["date"], r["author"], r["text"][:120])
レスポンスは正規化された JSON です(フィールドは説明用です。正確なリクエストボディとスキーマはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"name": "Blue Bottle Coffee",
"rating": 4.5,
"reviews_count": 1287,
"reviews": [
{ "rating": 5, "date": "a week ago", "author": "A. Reviewer", "text": "Great pour-over…" }
]
}
}
多くの場所を監視する場合は、Google Maps ビジネスデータセットのエンドポイントを使えば、各場所をライブで解決する代わりに、事前にクロール済みのコーパス全体を検索して集計を取得できます。
収集できるもの
- 場所ごとの集計評価とレビュー総数
- 個々のレビュー — 星評価、レビュー本文、投稿者、相対的な日付
- 存在する場合はオーナーからの返信
- 評価の分布を構築し、時系列で感情を追跡するのに十分な情報
制限とよくある課題
- 公式の一括ソースがない。 Places API は 5 件のレビューで上限に達し保存を制限します。Business Profile API は自分の掲載情報専用です — つまり完全な公開レビュー収集は本質的にスクレイピングの問題です。
- 相対的な日付。 Google はレビューの日付を「a week ago」のように表示し、タイムスタンプではありません。収集時に正規化し、取得日を保存して時系列が意味を持ち続けるようにしましょう。
- レビューは切り詰められ並べ替えられる。 公開 UI は一部だけを表示し、デフォルトで関連性順に並べます。1 回の取得は大きなサンプルとして扱い、完全な履歴が保証されているとは考えないでください。
- 個人データ。 投稿者名は個人データです — 分析用に集計し、保存や再配布の前に GDPR/CCPA に注意してください。
出典
どこで役立つか
まずは無料で試す: 無料ウェブスクレイパーで場所を実行するか、アンチボットチェッカーでターゲットがボットをブロックしているか確認しましょう。登録は不要です。
レビューは、残りのビジネスレコードや他のレビューソースと並べたときに最も価値を発揮します。完全な掲載情報についてはGoogle Maps をスクレイピングする方法、プラットフォームをまたいだ評判についてはTrustpilot のレビューをスクレイピングする方法、生のレビューを感情に変えるにはアプリレビュー分析のワークフローと組み合わせましょう。より広いツールセットについてはウェブスクレイピング API の選び方をご覧ください。
まずはプレイグラウンドでエンドポイントを試し、API ドキュメントでリクエストとレスポンスのスキーマを読み、料金ページでクレジットのコストを確認することから始めましょう。
よくある質問
公式の Google レビュー API はありますか?
2 つ存在しますが、どちらも大量のレビュー収集をカバーしません。Google Places API は 1 つの場所につき最大 5 件のレビューしか返さず、キャッシュや表示方法を制限します。Google Business Profile API はすべてのレビューを読めますが、自分が所有し確認済みの場所に限られます。したがって、任意のビジネスの完全な公開レビューストリームを取得する公式の方法はありません。このギャップこそ、レビュー収集がいまだにスクレイピングやスクレイピング API を通じて行われる理由です。
Google のレビューはどうやってスクレイピングしますか?
信頼できる手段は構造化された API です。検索呼び出しでビジネスを Google の場所に解決し、次にその場所の詳細(レビューを含む)を JSON(評価、レビュー本文、投稿者、相対的な日付)として取得します。自前でやる場合は、クライアントサイドでレンダリングされる Maps UI をヘッドレスブラウザで操作し、ページネーションのために上限のないスクロールループを回し、壊れやすい難読化されたセレクタを扱い、さらに Google のボット検出を切り抜けるためのレジデンシャルプロキシが必要になります。
Google のレビューをスクレイピングするのは合法ですか?
Google のレビューは公開データであり、公開データの収集は一般に非公開アカウントへのアクセスとは異なる扱いを受けますが、無条件ではありません。公開されているレビューのみを収集し、レート制限と Google の利用規約を尊重してください。また、投稿者名は個人データであることを忘れず、可能な限り集計し、保存や再配布の前に GDPR/CCPA に注意してください。これは法的助言ではありません。商用利用の前にお住まいの地域の法律を確認してください。