メインコンテンツへスキップ

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

AppStore::Apps

AppStore::AppsAppStore::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」を有効にする必要があります。

利用可能な設定

パラメータデフォルト値説明
CountryUnited States検索を実行する国の選択。
Results count10クエリあたりの結果数(最大200)。
PriceAll価格による結果の抽出(All, Free only, Paid only)。
Min ratingAllレーティングによる結果の抽出(All または 4+ stars)。