Экспортируем комментарии и оценки из Google Play для анализа

сегодня в 07:23

fd3e203fa279491ebc0c9800ae74c286.jpg Не все знают, но в Google Play существует вполне легальная возможность выгрузить все комментарии и оценки к своему приложению в отдельный CSV-файл, после чего заняться каким-нибудь анализом, не доступном из гугловской системы. Но делается это с помощью внешней утилиты gsutil, написанной на Python«е. Так что в этом посте будет небольшая инструкция по тому, как это сделать.Инсталлируем python 2.6 или 2.7, если его ещё нет в системе. Инструкция по установке на официальном сайте, там нет ничего сложного для любой ОС. Скачиваем и распаковываем в любую папку gsutil (прямая ссылка на zip, прямая ссылка на tar.gz) Открываем консоль в папке с gsutil и продолжаем работать в ней. (Для windows — shift+правый клик в этой папке и выбор «Открыть окно команд», пользователи более популярных и сами знают, как это сделать, раз уж сумели их установить) Выполним команду gsutil.py update для очевидных целей. Обычно в архиве уже лежит свежая версия, но бывает всякое.bad5599a29f74650833cae4d6ff6b581.png

Выполним команду gsutil.py config 65e6b2339c5142e98f0c54d45628e1ee.pngПолучаем примерно такое сообщение. Что делать, опять же, очевидно — скопировать ссылку в браузер.

Перейдя по ссылке мы попадём на страницу, на которой разрешим приложению работать с нашим аккаунтом.50757d5585aa47ea814859d637dabb7b.png

И скопируем код в консольd60a539fd3d244508e7781ac3af88515.png8acee4fc4764477b808d7a018d140d6e.png

В ответ получим ещё одно сообщение, с предложением выбрать проект по умолчанию в Google Developer Console, но это делать не обязательно, тем более, что нужного нам проекта там может просто не быть. Но что-то ввести в скрипт нужно, пустую строку он не примет. Так что введём просто »1» например и закончим работу.318d68804a0b498496a538c65a809944.png

На странице «Оценки и отзывы» своего приложения нужно найти идентификатор сегмента отчетов, начинающийся со строки pubsite_prod_rev_, например pubsite_prod_rev_1234567890123456789.fe16c532f21a41a1b7652fd4219b48a0.png

bd3c423a495b45e98154d57411746291.png

Теперь никто не мешает нам скачать все отчеты. Для этого достаточно выполнить команду gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/*.* Адрес_папки_куда_копировать В нашем случае: gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/*.* C:\Python27\texts -m — флаг копирования в несколько параллельных потоковcp — команда копирования файлов.Подробно о командах утилиты можно прочитать тут. В результате в папке мы получим кучу файлов с именами по схеме reviews_[имя_пакета_приложения]_YYYYMM (Y — год, M — месяц). Причем для всех закреплённых за вашим аккаунтом приложений сразу.917d2a45790a420080a51de0c5ec8673.png

Конечно, если вам нужны отчеты только одному приложению, можно качать данные запросом вида

gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/* com.new_program*.* C:\Python27\texts Но, думаю, принцип фильтрации и так понятен. В целом, всё уже прекрасно, но работать с пачкой отдельных файлов неудобно, так что простым питоновским скриптом склеим их в один файл. Конечно, можно было бы простой командой copy объединить файлы в один, но тогда у нас будет дублироваться заголовок, а это неприятно. import os import codecs

files = os.listdir (».») csvs = filter (lambda x: x.endswith (».csv») and x!=«all_csv.csv», files) file_write = codecs.open ('all_csv.csv', 'w','utf-16') header_writed = False for file_name in csvs: file_read = codecs.open (file_name,'r','utf-16') lines_count=0 for line in file_read: lines_count=lines_count+1 if (lines_count == 1): if (header_writed == False): header_writed = True file_write.write (line) else: file_write.write (line) file_read.close () file_write.close () Ну вот вроде бы и всё. Полученный файл в экселе выглядит примерно так: 1f9b78be3b974d9aaa3b5f9d016042a1.png

763fef0af6c34936a2f7515a48b70d93.png

А уж какую аналитику творить с полученным файлом — смотрите сами. :)

Список использованной литературы support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviewsdevelopers.google.com/storage/docs/gsutil

896

21

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

© Habrahabr.ru