AppStore::Apps - App Storeアプリスクレイパー

AppStore::Apps – App Storeからアプリデータをスクレイピングします。アプリ名、評価、開発者、説明、アプリのリンク、価格など、すべてのデータを自動収集します。最大限の検索結果を得るために、クエリの自動増殖、ファイルからのサブクエリの置換、英数字の組み合わせやリストの総当たりを使用できます。結果のフィルタリングを使用すると、除外キーワードを使用して不要なゴミを削除し、結果をすぐにクリーンアップできます。
A-Parserの機能により、AppStore::Apps スクレイパーのスクレイピング設定を後で再利用するために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。
結果の保存は、内蔵の強力なテンプレートエンジン Template Toolkit により、必要な形式と構造で可能です。これにより、結果に追加のロジックを適用し、JSON、SQL、CSV を含むさまざまな形式でデータを出力できます。
収集されるデータ
データは apps.apple.com サービスから収集されます。
- 名称
- サブタイトル
- 作成者と作成者へのリンク
- レーティングと評価数
- 年齢制限
- 価格
- 画像(アイコン)
- 説明
- バージョン
- サイズ
- カテゴリ
- アプリへのリンク
機能
- 検索を実行する国の選択
- 価格による検索(無料または有料)
- レーティングによる検索(すべて、または4つ星以上)
ユースケース
- App Storeからのアプリデータのスクレイピング
- App Storeでの競合他社のモニタリング
- キーワードによるアプリの収集
クエリ
クエリとして、App Storeで検索するフレーズを指定する必要があります。例:
mobile legends
casino
time tracker
クエリの置換
内蔵マクロを使用して、ファイルからサブクエリを自動的に置換できます。例えば、各クエリに他の単語のリストを追加したい場合、いくつかのメインクエリを指定します:
fantasy
tower defense
rpg
クエリ形式で、ファイル keywords.txt から追加の単語を置換するマクロを指定します。この方法により、クエリのバリエーションを大幅に増やすことができます:
{subs:keywords} $query
結果の出力例
A-Parserは、内蔵のテンプレートエンジン Template Toolkit により柔軟な結果のフォーマットをサポートしており、任意の形式や、CSVやJSONなどの構造化された形式で結果を出力できます。
デフォルト出力
結果フォーマット:
$serp.format('$link\n')
結果の例:
https://apps.apple.com/us/app/mobile-legends-bang-bang/id1160056295
https://apps.apple.com/us/app/mobile-legends-adventure/id1448605031
https://apps.apple.com/us/app/mobile-strike-modern-war/id931630086
CSVテーブルへの出力
結果フォーマット:
[% FOREACH item IN p1.serp;
tools.CSVline(item.link, item.name, item.author, item.rating, item.price, item.category);
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 _ "', '" _ price _ "')\n";
END %]
結果の例:
INSERT INTO serp VALUES('Mobile Legends: Bang Bang', '4.6', 'Moonton', 'Free')
INSERT INTO serp VALUES('PUBG MOBILE', '4.5', 'KRAFTON, Inc.', 'Free')
INSERT INTO serp VALUES('Fortnite', '4.3', 'Epic Games', 'Free')
JSONへの結果ダンプ
共通結果形式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.serp = [];
FOREACH item IN p1.serp;
obj.serp.push({
link = item.link
name = item.name
author = item.author
rating = item.rating
price = item.price
category = item.category
});
END;
obj.json %]
開始テキスト:
[
終了テキスト:
]
結果の例:
[{"serp": [{"link":"https://apps.apple.com/us/app/mobile-legends-bang-bang/id1160056295","name":"Mobile Legends: Bang Bang","author":"Moonton","rating":"4.6","price":"Free","category":"Games"},{"link":"https://apps.apple.com/us/app/pubg-mobile/id1330123889","name":"PUBG MOBILE","author":"KRAFTON, Inc.","rating":"4.5","price":"Free","category":"Games"}]}]
タスクエディタで「Prepend text」および「Append text」オプションを使用するには、「More options」を有効にする必要があります。
利用可能な設定
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
| Country | United States | 検索を実行する国の選択。 |
| Results count | 10 | クエリあたりの結果数(最大200)。 |
| Price | All | 価格による結果の抽出(All, Free only, Paid only)。 |
| Min rating | All | レーティングによる結果の抽出(All または 4+ stars)。 |