Tony Wang6 分で読めますGoogle Play のアプリとランキングをスクレイピングする方法【2026年版】(API と Python)
2026年に Google Play のアプリのリスティング・ランキング・検索・開発者カタログをスクレイピング — 自作 Python、ノーコード、正規化 JSON を返す構造化 API。
2026 年に Google Play をスクレイピングする最速の方法は、ストアのクライアントサイドのページをレンダリングしてアンチボットのスロットリングと戦う代わりに、正規化された JSON(アプリのメタデータ・カテゴリのトップチャート・検索・類似アプリ・開発者の完全なカタログ・データセーフティラベル)を返す構造化 API を呼び出すことです。自作のスクレイパーを作ることもできますが、Google Play はデータを手厚く防御しており、公式 API は自分が所有するアプリしかカバーしません。本ガイドでは 3 つのアプローチすべて、それぞれが何を返すか、どこで破綻するか、そして法律の基本を解説します。
なぜ Google Play をスクレイピングするのか
Google Play のアプリとリスティングのデータは、プロダクト・マーケティング・調査の作業カテゴリ全体を支えています。
- アプリストア最適化(ASO) — 自社アプリと競合のランキング・評価・インストール数の範囲・キーワードの露出を追跡します。
- 競合・市場調査 — どのアプリがカテゴリをリードしているか、どのアプリが伸びているか、ライバルのポートフォリオ全体がどう推移しているかを把握します。
- プライバシー・コンプライアンス監査 — アプリ群にわたってデータセーフティの宣言と権限を収集します。
- レビュー・センチメント分析 — バージョン別・国別に、ユーザーが賞賛する点と不満に思う点を定量化します。
- AI / LLM パイプライン — アプリのメタデータとレビューを検索・分析のワークフローに投入します。
Google Play をスクレイピングするのは合法か
選択肢 1: Python での自作(そしてなぜ破綻するか)
Google Play には公開のデータ API がないため、自作のスクレイパーはクライアントサイドのリスティングページをパースするか、非公式の google-play-scraper に頼ることになります。
from google_play_scraper import app, reviews, Sort
info = app("com.openai.chatgpt", lang="en", country="us") # title, installs, score, developer
result, token = reviews("com.openai.chatgpt", lang="en", country="us",
sort=Sort.NEWEST, count=200) # capped at ~200 per request
デモでは動きますが、その後こう破綻します。
- 公式の公開 API がない。 Google Play Developer API(Android Publisher)は自分が所有するアプリのデータしか返しません — 競合や市場の調査には役に立ちません — そのため他のアプリはすべてスクレイピングを意味します。
- クライアントサイドレンダリング。 リスティングページは内部の
batchexecuteRPC からハイドレートされるため、requests+BeautifulSoupでは外殻しか取得できません。内部エンドポイントをリバースエンジニアリングする必要がありますが、それらは予告なく変更されてパーサーを壊します。 - スロットリングと IP バン。 直接のリクエストは Google のアンチボット防御に引っかかり — captcha 付きの 503 と約 1 時間の IP バン(プロキシなしでおおよそ 500〜1,000 アプリ/IP/日)— を招くため、residential プロキシのローテーションが必要です。
- レビューとランキングの上限。 レビューはループで処理するカーソルトークンの背後で 1 リクエストあたり約 200 件を返し、トップチャートと検索はページングされてロケール固有です — 国ごとに別々のクロールになります。
選択肢 2: ノーコードツール
ビジュアル抽出ツールやマーケットプレイスの「Google Play」アクターは CSV/JSON をエクスポートし、単発の取得には向いていますが、フィールドが予測可能なプロダクト内のパイプラインでは扱いづらく、同じクライアントサイドレンダリング・スロットリング・上限で破綻します。
選択肢 3: 構造化された Google Play API
繰り返し行うワークフローには、構造化された Google Play API が、動かすスクレイパーなしで正規化された JSON を返します。アプリを見つけ、そのリスティングを取得します。
curl "https://api.crawlora.net/api/v1/googleplay/search?term=chatgpt&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"
Python の場合 — 各アプリがパッケージ名でどう指定されるかに注目してください。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1"
# 1) Search to find an app_id (package name)
hits = requests.get(f"{base}/googleplay/search", headers=h,
params={"term": "chatgpt", "country": "us", "lang": "en"}).json()["data"]
# 2) Full listing detail for that package name
info = requests.get(f"{base}/googleplay/app", headers=h,
params={"app_id": "com.openai.chatgpt", "country": "us", "lang": "en"}).json()["data"]
検索は軽量なアプリレコードを返します(フィールドは説明用です。ドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": [
{ "app_id": "com.openai.chatgpt", "title": "ChatGPT", "developer": "OpenAI", "score": 4.8, "price_text": "FREE", "free": true }
]
}
同じキーで、ランキング・類似アプリ・開発者のカタログ全体・プライバシーラベルにも届きます。
top = requests.get(f"{base}/googleplay/list", headers=h,
params={"collection": "TOP_FREE", "category": "PRODUCTIVITY", "country": "us"}).json()["data"] # category top-chart
similar = requests.get(f"{base}/googleplay/similar", headers=h,
params={"app_id": "com.openai.chatgpt", "country": "us"}).json()["data"] # competitors
portfolio = requests.get(f"{base}/googleplay/developer/7577165439232992817", headers=h,
params={"country": "us"}).json()["data"] # every app by a developer
safety = requests.get(f"{base}/googleplay/datasafety", headers=h,
params={"app_id": "com.openai.chatgpt"}).json()["data"] # data_shared / data_collected
レビューはカーソルでページングされて返ってきます。返された next_pagination_token を paginate で渡して、順にたどってください。
reviews = requests.get(f"{base}/googleplay/reviews", headers=h,
params={"app_id": "com.openai.chatgpt", "country": "us", "sort": "newest"}).json()["data"]
# reviews["data"] -> list of { id, user_name, date, score, text, version, thumbs_up }
# reviews["next_pagination_token"] -> pass back via paginate to continue
すべての呼び出しで country(と lang)を渡してください — ランキング・価格・提供状況は国によって異なります — アプリまたはレビュー 1 件につき 1 行を保存し、スケジュールに沿って再取得することで、ランキングとセンチメントの推移を追跡できます。両ストアにわたるレビューの詳しい手順については、App Store と Google Play のレビューをスクレイピングする方法を参照してください。
収集できるもの
- アプリのリスティング — title、description、summary、インストール数の範囲(installs、min_installs)、score、developer、version。
- ランキングと発見 — カテゴリのトップチャートのリスト(
list)、検索結果、クエリの候補、カテゴリ。 - 競合グラフ — 類似アプリと、developer id による開発者の完全なカタログ。
- プライバシー — データセーフティの宣言(data shared / collected)と要求される権限。
- レビュー — id、user_name、date、score、text、version、thumbs_up。カーソルでページングされます。
すべてが国と言語でスコープされます。公開された事実に基づくフィールドにとどめてください。
制約とよくある課題
- 任意のアプリ向けの公開 API がない。 公式の Play Developer API は自分が所有するアプリしかカバーしないため、公開アプリの調査はスクレイピングを意味します — 構造化 API はそれを 1 つのキーの背後で処理します。
- すべてがロケール依存。 ランキング・提供状況・価格は国ごとで、同じアプリでも市場によって異なることがあります。対象としたい国を収集してください。
- レビューは上限付きでカーソルページング。 各リクエストはトークンの背後で約 200 件のレビューを返し、表示される合計は 1 回の取得とは一致しません。トークンが空になるまでループしてください。
- レート制限とバン。 直接スクレイピングすると captcha 付きの 503 と約 1 時間の IP バンを招きます。構造化 API はプロキシとスロットリングを吸収します。
- レビューと名前は個人データ。 レビュアー名とレビュー本文は GDPR/CCPA のもとで個人データとして扱ってください — 適法な根拠のもとで、公開された事実に基づくフィールドを収集します。
どこで使われるか
- アプリストア最適化(ASO) — カテゴリと国をまたいで競合のランキング・評価・バージョン更新のペースを追跡します。
- アプリレビュー分析 — バージョン別にレビューのセンチメントと苦情を掘り下げます。アプリレビュー分析のユースケースを参照してください。
- レビューと評判の監視 — 評価とセンチメントの推移を見張ります。レビューと評判の監視を参照してください。
出典
収集を始める
まず無料で試す: 任意の公開 URL を Free Web Scraper で実行するか、Anti-Bot Checker でサイトがボットをブロックするかどうかを確認できます。サインアップは不要です。
エンドポイントを Playground でテストし、API ドキュメントでスキーマを確認し、料金を確認してください。フルカタログ — App Store と Google Play にまたがる 410 万件のアプリ — をモバイルアプリのデータセットで閲覧できます。レビューの詳しい解説についてはApp Store と Google Play のレビューをスクレイピングする方法、気になっているカタログがゲームならSteam — Play と Steam はモバイルと PC における同じタイトルの両端であり、それぞれ独自の価格、評価、レビュー文化を持ちます — 、そして3つ目のストアであるブラウザ拡張機能についてはChrome ウェブストアのスクレイピング方法も参照してください。あわせてウェブスクレイピング API の選び方、ウェブスクレイピングは合法かもご覧ください。
よくある質問
ブロックされずに Google Play をスクレイピングできますか?
Google Play は内部の batchexecute RPC からクライアントサイドでレンダリングし、直接のスクレイパーを 503・captcha・約 1 時間の IP バンでレート制限するため、自作には residential プロキシのローテーションが必要です。構造化 API はプロキシとスロットリングを 1 つのキーの背後で吸収します。公開された事実に基づくフィールドのみを収集してください。
Google Play には公式 API がありますか?
自分が所有するアプリ向けだけです。Google Play Developer API(Android Publisher)は自分のリスティングとレビューのデータを返しますが、任意のアプリ向けの公式な公開 API はありません。そのため競合や市場の調査はスクレイピングを意味し、構造化 API はそれを正規化された JSON として返します。
Google Play のアプリはどう指定しますか?
数値の id ではなく、com.openai.chatgpt のようなパッケージ名(application id)で指定します。検索は app_id を返し、他のすべてのエンドポイント — app、reviews、similar、datasafety、permissions — はそのパッケージ名を受け取ります。
Google Play のどんなデータを収集できますか?
公開カタログのデータです。アプリのメタデータ(title、description、インストール数の範囲、score、developer、version)、カテゴリのトップチャートのリスト、検索とクエリの候補、類似アプリ、開発者の完全なカタログ、データセーフティの宣言、権限、レビュー(id、user_name、score、text、version、thumbs_up)。
他の国や言語のアプリをスクレイピングできますか?
はい。すべてのエンドポイントで country と lang を渡します。ランキング・提供状況・価格は国によって異なるため、同じアプリでも市場によって見え方が変わります。対象としたい国を収集し、スケジュールに沿って再取得してください。
アプリのすべてのレビューを取得するには?
レビューはカーソルでページングされます。各リクエストは約 200 件のレビューと、続けるために paginate で渡す next_pagination_token を返します。トークンが空になるまでループしてください。表示されるレビュー合計は 1 回のリクエストとは一致しません。詳しい手順はレビューのガイドを参照してください。
Google Play のデータは個人データですか?
アプリのメタデータとランキングは事実であり公開されていますが、レビュアー名とレビュー本文は GDPR/CCPA のもとで個人データです。適法な根拠のもとで公開された事実に基づくフィールドを収集し、レビュアーの身元を再公開しないでください。