プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AppStoreからiOSアプリのランキングを取得する

 スマホアプリの人気の動向を知りたい場合は、AppleのAppStoreとGoogle Playを見ると思います。今回は、それを自動的に取得する方法を紹介します。

AppStoreのRSS Feed GeneratorからURL取得



 AppStoreのランキングは、RSS Feedで配信されています。また、いつから存在するのか解らないのですが、このRSS Feedを生成するGeneratorサイトがあり、任意の国/カテゴリー/データ種別用のRSSを指定できるようになっています。

f:id:dkfj:20161007073726p:plain

RSS Generator

例えば、日本での有料のiOSアプリのトップ25を取得する場合は、次のようなURLとなります。
https://itunes.apple.com/jp/rss/topgrossingapplications/limit=25/genre=6015/xml


 取得できるXMLは、次のような形です。
f:id:dkfj:20161007074216p:plain

Google スプレッドシートで取得する



 それでは、取得したデータをGoogle スプレッドシート取得してみましょう。Google スプレッドシートには、幾つか外部データを取得するセル関数が存在します。今回は、ImportFeed関数が良いでしょう。関数の詳細については、この辺りを見てください。


Google スプレッドシートの関数でWebからデータを取得する

 ImportFeedの構文は、次のようになっています。

IMPORTFEED(URL, [クエリ], [見出し], [アイテム数])

 必須はURLのみで、後はオプションです。まずは、URLのみでの取得をしてみましょう。
f:id:dkfj:20161008092711p:plain

 デフォルトでは、Title,Author,URL,Summaryの4つの項目を取得します。しかし、このデータの場合はSummaryが大きすぎて見づらいです。そこで、項目指定で取得することにします。項目は、引数"クエリ"で指定します。欲しい値は、TitleとURLです。その場合、"items title"と"items url"といったように指定します。

=IMPORTFEED("https://itunes.apple.com/jp/rss/topgrossingapplications/limit=25/genre=6015/xml","items title","true")
=IMPORTFEED("https://itunes.apple.com/jp/rss/topgrossingapplications/limit=25/genre=6015/xml","items url","true")


※本当は、1つの関数で取得したいのですが、複数項目を指定する方法が解りませんでした。誰か教えてください。

 A1,A2のセルに上の二つの関数を並べると、次のような形になります。スッキリ!!
f:id:dkfj:20161008093831p:plain

まとめ



 AppStoreのランキングについては、RSSで配信されているので簡単に取得できます。一方で、Google PlayについてはRSSが提供されていません。次回、どうやったら楽に取れるか考えてみます。

See Also:
環境構築レスでAmazonの商品レビューを取得する
Google スプレッドシートの関数でWebからデータを取得する