GooglePlay::Apps - Google Playアプリスクレイパー
スクレイパーの概要

GooglePlay::Apps – Google Playからアプリのデータをスクレイピングします。アプリ名、評価、開発者、説明、アプリのリンク、価格など、すべてのデータを自動的に収集します。最大限の結果を得るために、クエリの自動展開、ファイルからのサブクエリの置換、英数字の組み合わせやリストの総当たりを使用できます。結果のフィルタリングを使用すると、マイナスキーワードを活用して不要なゴミを削除し、結果をすぐにクリーンアップできます。
A-Parserの機能により、GooglePlay::Apps スクレイパーのスクレイピング設定を将来の使用のために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。
内蔵された強力なテンプレートエンジン Template Toolkit のおかげで、結果に必要な形式や構造で保存できます。これにより、結果に追加のロジックを適用したり、JSON、SQL、CSV を含むさまざまな形式でデータを出力したりできます。
スクレイパーのユースケース
🔗 割引アプリのスクレイピング
Google Playで割引中のアプリを検索し、収集したデータをデータベースに保存します
🔗 Google Play サジェスト
Google Playストアのサジェストスクレイパー
収集データ
データは play.google.com サービスから収集されます。

- 名前
- レーティング
- 説明
- アプリへのリンク
- 価格
- ダウンロード数
- アプリのジャンル
機能
- 検索を実行する国の選択
- 結果ページの言語の選択
- 価格による検索(無料または有料)
- レーティングによる検索(すべて、または4つ星以上)
利用シーン
- Google Playからのアプリデータのスクレイピング
クエリ
クエリとして、GooglePlayで検索するフレーズを指定する必要があります。例:
心拍計
クエリの置換
内蔵マクロを使用して、ファイルからサブクエリを自動的に置換できます。例えば、各クエリに他の単語のリストを追加したい場合、いくつかのメインクエリを指定します:
fantasy
tower defense
rpg
クエリ形式で、ファイル keywords.txt から追加の単語を置換するマクロを指定します。この方法により、クエリのバリエーションを大幅に増やすことができます:
{subs:keywords} $query
このマクロは、元の検索クエリごとにファイル内の行数分だけ追加のクエリを作成します。結果として、マクロの動作により [元のクエリ数] x [Keywordsファイル内のクエリ数] = [総クエリ数] となります。
例えば、keywords.txt ファイルに以下が含まれている場合:
free
online
最終的に、置換マクロは3つのメインクエリを6つに変換します:
free fantasy
online fantasy
free tower defense
online tower defense
free rpg
online rpg
結果の出力例
A-Parserは、内蔵のテンプレートエンジン Template Toolkit により柔軟な結果フォーマットをサポートしており、任意の形式や、CSVやJSONなどの構造化された形式で結果を出力できます。
デフォルト出力
結果フォーマット:
$serp.format('$name ($rating, $author): $desc ($link, $price)\n')
結果の例:
Heart Rate Monitor (4.5, Meet Your Need Production): Most Precise Heart Rate Monitor Ever + Unlimited Measurements and Records. (https://play.google.com/store/apps/details?id=com.supersimpleapps.heart_rate_monitor_newui, free)
Instant Heart Rate : Heart Rate & Pulse Monitor (4.3, Azumio Inc.): Best way to track heart rate, health, fitness, workout, cardio, stress, training (https://play.google.com/store/apps/details?id=si.modula.android.instantheartrate, free)
Pulse - Heart Rate Monitor (4.3, Ahmerov Vadim): Get your heart rate in seconds! The Best way to measure your heart rate. (https://play.google.com/store/apps/details?id=com.icebit.pulse, free)
Heart Rate Monitor (4.5, REPS): The simplest yet the most accurate app to monitor your heart rate! (https://play.google.com/store/apps/details?id=com.repsi.heartrate, free)
Cardiograph - Heart Rate Meter (3.8, MacroPinch): How fast is your heart beating? Measure your pulse. (https://play.google.com/store/apps/details?id=com.macropinch.hydra.android, free)
iCare Health Monitor (BP & HR) (4.6, iCare Fit Studio): Measure blood pressure,heart rate,vision,hearing,SpO2,breath rate by the phone (https://play.google.com/store/apps/details?id=comm.cchong.BloodAssistant, free)
CSVテーブルへの出力
結果フォーマット:
[% FOREACH i IN serp;
tools.CSVline(i.name, i.rating, i.author, i.price);
END %]
ファイル名:
$datefile.format().csv
開始テキスト:
名前,レーティング,著者,価格
結果フォーマットでは、FOREACH ループ内で $serp 配列の要素を出力するために Template Toolkit テンプレートエンジン が使用されます。
結果のファイル名では、拡張子を csv に変更するだけです。
タスクエディタで「Prepend text」オプションを使用するには、「More options」を有効にする必要があります。 「Prepend text」にカンマ区切りで列名を記入し、2行目を空行にします。
SQL形式での保存
結果フォーマット:
[% FOREACH serp;
"INSERT INTO serp VALUES('" _ name _ "', '" _ rating _ "', '" _ author _ "')\n";
END %]
結果の例:
INSERT INTO serp VALUES('Internet Speed Test-FiberTest for Android Smart TV', '3.9', 'RedMango Analytics PVT LTD')
INSERT INTO serp VALUES('Phone Check and Test', '4.6', 'inPocket Software')
INSERT INTO serp VALUES('Speedtest by Ookla', '4.3', 'Ookla')
INSERT INTO serp VALUES('Expert Speed Test WiFi Analyzer - analiti', '4.6', 'analiti Experts Group')
INSERT INTO serp VALUES('Brain Test: Tricky Puzzles', '4.6', 'Unico Studio')
INSERT INTO serp VALUES('Love Test Calculator - Compatibility Tester Prank', '3.8', 'DH3 Games')
INSERT INTO serp VALUES('FAST Speed Test', '4.3', 'Netflix, Inc.')
INSERT INTO serp VALUES('DMV WRITTEN TEST: Free DMV Tests for All 50 States', '4.7', 'DMV Written Test')
INSERT INTO serp VALUES('Brain Test 2: Tricky Stories', '4.6', 'Unico Studio')
INSERT INTO serp VALUES('Internet speed test Meter- SpeedTest Master', '4.9', 'Test speed internet & Net meter')
INSERT INTO serp VALUES('Test Your Android - Hardware Testing & Utilities', '4.2', 'Hibernate')
INSERT INTO serp VALUES('Stupid Test - How Smart Are You?', '3.6', 'DH3 Games')
INSERT INTO serp VALUES('love test', '4.1', 'MobilPlug')
INSERT INTO serp VALUES('Personality Trait Test', '4.2', 'Aaditya Prakash')
INSERT INTO serp VALUES('Aptitude test. Personality test games', '4.2', 'iq test')
INSERT INTO serp VALUES('What animal are you? Test', '3.5', 'Hemisoft')
INSERT INTO serp VALUES('Lie Detector Face Test Simulator Prank', '3.9', 'Droidheads')
INSERT INTO serp VALUES('BFF Friendship Test', '4.1', 'DH3 Games')
INSERT INTO serp VALUES('IQ and Aptitude Test Practice', '4.0', 'LangiS')
INSERT INTO serp VALUES('FCC Speed Test', '3.3', 'FCCAPPs')
INSERT INTO serp VALUES('40+ Psychological Tests', '4.4', 'MuraDev')
INSERT INTO serp VALUES('G1 Test Genie: Drivers Test Practice Ontario 2021', '4.5', 'Elegant E-Learning')
INSERT INTO serp VALUES('Brain test - psychological and iq test', '4.4', 'iq test')
結果をJSONにダンプ
共通結果形式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.serp = [];
FOREACH item IN p1.serp;
obj.serp.push({
name = item.name
author = item.author
rating = item.rating
price = item.price
});
END;
obj.json %]
開始テキスト:
[
終了テキスト:
]
結果の例:
[{"serp": [{"name":"Internet Speed Test-FiberTest for Android Smart TV","price":"free","author":"RedMango Analytics PVT LTD","rating":"3.9"},{"name":"Phone Check and Test","price":"free","author":"inPocket Software","rating":"4.6"},{"name":"Speedtest by Ookla","price":"free","author":"Ookla","rating":"4.3"},{"name":"Expert Speed Test WiFi Analyzer - analiti","price":"free","author":"analiti Experts Group","rating":"4.6"},{"name":"Brain Test: Tricky Puzzles","price":"free","author":"Unico Studio","rating":"4.6"},{"name":"Love Test Calculator - Compatibility Tester Prank","price":"free","author":"DH3 Games","rating":"3.8"},{"name":"FAST Speed Test","price":"free","author":"Netflix, Inc.","rating":"4.3"},{"name":"DMV WRITTEN TEST: Free DMV Tests for All 50 States","price":"free","author":"DMV Written Test","rating":"4.7"},{"name":"Internet speed test Meter- SpeedTest Master","price":"free","author":"Test speed internet & Net meter","rating":"4.9"},{"name":"Brain Test 2: Tricky Stories","price":"free","author":"Unico Studio","rating":"4.6"},{"name":"Stupid Test - How Smart Are You?","price":"free","author":"DH3 Games","rating":"3.6"}]}]
タスクエディタで「Prepend text」および「Append text」オプションを使用するには、「More options」を有効にする必要があります。
設定可能な項目
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
| Country | United States | 検索を実行する国の選択。 |
| Language | English | 結果ページの言語の選択。 |
| Prices | All | 価格による結果の抽出(無料または有料)。 |
| Ratings | All | レーティングによる結果の抽出。 |