Получаем рецензии к приложению в AppStore на python

Простой скрипт для загрузки рецензий к приложению, опубликованному в AppStore. Posted on March 6, 2015

Список рецензий в формате JSON можно получить по адресу:

http://itunes.apple.com/ru/rss/customerreviews/id=APP_ID/json,

где APP_ID — идентификатор приложение в AppStore.

Ниже приведен скрипт оп python, который забирает JSON и выводит рецензии в консоль, в удобном формате.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import urllib2
import json
import textwrap
import sys

class AppStoreReviews(object):

    """docstring for AppStoreReviews"""

    def __init__(self):
        super(AppStoreReviews, self).__init__()

    def getReviews(self, app):

        response = urllib2.urlopen("http://itunes.apple.com/ru/rss/customerreviews/id=%s/json" % app)
        data = json.load(response)

        for entry in data["feed"]["entry"]:
            try:
                stars   = u'★' * int(entry["im:rating"]["label"])
                title   = entry["title"]["label"]
                author  = entry["author"]["name"]["label"]
                version = entry["im:version"]["label"]
                comment = entry["content"]["label"]
                comment = textwrap.fill(textwrap.dedent(comment).strip(), width=60)
                review  = {'title': title, 'author': author, 'comment': comment, 'stars': stars, 'version' : version}
                string  = u"{stars:5} ({version}) {title}\n  {comment}\n{author:>60}\n".format(
                    stars   = review['stars'],
                    version = review['version'],
                    title   = review['title'],
                    author  = review['author'],
                    comment = review['comment'] );
                print string.encode("utf-8");

            except Exception: pass

    def printReviews(self, reviews):
        for review in reviews:
            string = u"{stars:5} ({version}) {title}\n  {comment}\n{author:>60}\n".format(
                stars   = review['stars'],
                version = review['version'],
                title   = review['title'],
                author  = review['author'],
                comment = review['comment'] );
            print string.encode("utf-8");


        pass

def main():
    if len(sys.argv) > 1:
        AppStoreReviews().getReviews(sys.argv[1])

if __name__ == '__main__':
    main()

Для использования, передается id приложения через командную строку:

$ chmod +x appstorereviews.py
$ ./appstorereviews.py 123456789


json python
Previous
March 6, 2015
Парсим JSON в Ruby