Всем любителям Python и Яндекс.Метрики доброго дня!
Некоторые знают, что с некоторых пор я заделался Web-разработчиком, впрочем это громко сказано. Мой сайт с занимательными задачками, кстати, если кому интересно, попасть туда можно вот по этой ссылке, медленно, но верно, катится в топы поисковиков, благо альтернатив не так много. О посещаемости на сайте я узнаю из отчетов уже полюбившейся мне яндекс.метрики. В принципе, там есть большинство из того, что мне нужно. Но каждый раз ходить на из сайт для того, чтобы посмотреть количество визитеров как-то не фонтан. И вот тут я снова, как нельзя кстати, вспомнил, что в общем-то я программист и учу питон. «Ладно», — подумал я — «заодно и в работе с сетью попрактикуюсь». Сказано-сделано. Через протокол oAuth регистрируем приложение и получаем для него отладочный токен (живет он бессрочно и каждый раз запрашивать его не надо. Так что под наши нужды — самое то!). Для всех интересующихся, под катом привожу код библиотеки, которую можно привязать к любому GUI — интерфейсу:
А теперь, кратко, что она все-таки умеет.
- Авторизовываться в яндекс.метрике, используя ID и токен
- Запрашивать список счетчиков для аккаунта (используется в дальнейшем)
- Получать статистику за сегодняшний день или за все время работы (Today или Totall в параметре соответствующей функции)
- Получать список поисковых фраз, по которым люди переходили на ваш сайт
- Проверять правильность установки счетчика
Сама либа, разумеется ничего по-умолчанию не делает. Для того, чтобы ей воспользоваться, нужно ее импортировать в ваш проект:
import YMReader
Затем передать ей данные для входа методом SetLoginData в параметрах указав ваш ID и ваш токен. Как вы получите токен — ваше дело, но я решил использовать статичный отладочный (должно же быть хоть что-то через жопу)
Например вот так:
SetLoginData("21535707","49985f415a9a46aab45b70304a557cab") # в данных изменена пара символов, поэтому при попытке воспользоваться - вернет 403 или 401 ошибку
Ну а теперь, можно пользоваться всеми функциями. Наберите print dir(YMReader), чтобы увидеть, как они называются. Как правило, функции у меня возвращают данные либо в виде словарей (например GetSummary) либо в виде строки (CheckCode). Поэтому, чтобы воспользоваться результатами ничего парсить не требуется. Давайте, для примера, выведем число посетителей для сайта ru-brains.org:
import YMReader
YMReader.SetLoginData("21535707","49985f415a9a46aab45b70304a557cab")
print YMReader.GetSummary((YMReader.GetCounters()[1]))["Visitors"]
Как видите, все просто!
Либа распространяется под лицензией GPL — так что пользуйтесь сколько хотите!
Всем удачи и безглючного кода!