Пульс Хабра

callidus77: Помница в нашей сетке монтажники подключали абонента. Пришли, воткнули сетевуху, а у него Фря и дров нету. Почесали головы и ушли. Чел через три недели наконец-то коннектится.Грят: «Долго ж ты искал дрова.«Он: «Я не искал. Я их сам написал.» Баш

Наверное, каждый автор трепетно следит за судьбой своих статей, такому автору на хабре всегда чего-то не хватает. Мне всегда не хватало инструментов наблюдения за статьями — поэтому я и решил их написать.cf3d527a44c0bf34eb51a9963a2e4ffc.pngПод катом мы разберемся с основными инструментами ресурса и потенциальной возможностью применения. Весь инструментарий доступен по адресу http://www.habr-analytics.com, исходный код (основные функции) на github. За примерами и деталями — добро пожаловать под кат!

Структура статьи

Пульс Хабра Монитор статей Анализ пользователей Пересечение хабов — диаграммы Венна Аудитория хабов Исходный код и структура проекта Заключение *Осторожно трафик*

Пульс Хабра Пульс — один из наиболее интересных индикаторов, он показывает динамику чтения хабра (точнее статей в «Новом»). Между точками фиксированный интервал в семь минут (плюс-минус минута). На графике ниже можем наблюдать уровень активности в ночь с воскресенья на понедельник. Хорошо видно, что статьи в понедельник утром читают в четыре раза активней, чем в ночь с воскресенья на понедельник (чего и следовало ожидать, но мы заранее не знаем «насколько» больше читают в понедельник утром)48da6706486aa45a59586c575b43b26a.pngВ чем смысл? Потенциальное применение: выбор времени для отправления статьи. Чем активнее люди читают хабр, тем больше шансов, что статью увидят. Соответственно, если индикатор в данный момент низкий, то возможно стоит пересмотреть время отправления статьи.Доступен по адресу: www.habr-analytics.com/pulse

Монитор статей Пожалуй, это одна из функций, которой мне настолько не хватало, что отдельно бы ещё написал в виде standalone приложения (если вы тоже считаете, что это отличная идея — напишите в саппорт пусть вернут стену выдадут мне уже токен для API — идеально бы интегрировать эту функцию в Хабр).Вкратце, следим за изменением просмотров, избранного и репостов в соц сетях (ВК, FB, Twitter) во времени. Интерфейс простейщий: выбираем статью из списка, тип данных и жмем кнопку «Построить График».a84bfa16923fbaf717fa13681f3d3353.pngВ репертуаре статьи за последние два дня (на самом деле за последние 52 часа).

Доступно по адресу: www.habr-analytics.com/monitor

В качестве примера, графики для хабра-статьи «С Днем Рождения, Элон Маск»: Просмотры: С Днем Рождения, Элон Маск»: 499274df63e871d3f47ff699362790a8.pngИзбранное: С Днем Рождения, Элон Маск»: 83fb6147316ddfb17c733681fe7537a8.pngРепосты в соц сетях: С Днем Рождения, Элон Маск»: 77610da58e2a2b5da7f915e71f3d0dc6.pngДля свежих статей число измерений меньшее (так как измерения происходят каждые семь минут), поэтому графики внешне выглядят немного по-другому:

Статья : «Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели» через 5–6 часов после появления.

Просмотры: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели91501d8aa94a65e5ad06729b9d521dec.pngИзбранное: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигателиb82797d7eedb36dddc2687675106894f.pngРепосты в соц сетях: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели11b38a247a94702912e71e69e9d63563.png

Для сравнения график просмотров этой же статьи через 27 часов27f7209b1b0030975dca9626cb291889.png

В чем смысл Наблюдать за динамикой чтения статьи: перестали ли читать статью, после того как она ушла из «лучшее за сутки»? (Чаще всего мы видим, что просмотры выходят на константу после 24-х часов.) В какой сети статья распространяется быстрее и активней? Как изменяется динамика после выхода на главную? В целом, монитор даёт интегральный слепок распространения статьи в сети.

Анализ пользователей Кому не интересно посмотреть свою «историю» на Хабре? Ну или ещё чью-нибудь; обычно, открываешь профиль и видишь всего лишь сухую пару строк: столько-то написал, зарегистрировался тогда-то и всё. Мне всегда это казалось чем-то не слишком интересным и пришла идея — визуализировать историю пользователя.Интерфейс предельно простой — имя пользователя, тип данных и большая кнопка.9dc0eda240604974c7608ca286953e9a.png

Приведем для примера графики для пользователя lozga — просто потому, что получается довольно красиво: одни «взлеты» и «падения».

«Анализ пользователей» доступен по адресу: www.habr-analytics.com/user

Рассмотрим графики чуть детальней: Просмотры5f81bebe14444e8d0dbacfc38b26d5ec.pngРейтингc67606cbbf9a407c7de26dcd74d03c38.pngИзбранноеcf3be6e81415a422a17fa3fbf1abde5c.png

Бонус: график просмотров для PapaBubaDiop (большой пик — это тот самый пост про «Поле Чудес»)284d768b3ae335d3cc11b10c85accf33.png

Зачем это нужно? С одной стороны позволяет взглянуть на историю своих статей на хабре; с другой, это гораздо более информативная подача профиля во времени, чем пара финальных чисел.Пересечение хабов — диаграммы Венна Не задумывались, что выбирая второй или третий хаб для статьи, вы вполне можете не покрывать новой аудитории? Для того, что убедиться в том, что хабы не пересекаются и сделана эта функция. Необходимо выбрать два или три хаба и кликнуть на большую кнопку.a814bed1899f5b17d849ca080bbea804.pngДоступно по адресу: www.habr-analytics.com/venn

Для данной функции так же имеется standalone версия с расширенным функционалом (например, с работой с хабами компаний) и хабра-статья с описанием: исходники (python) и исполняемые файлы для Windows, Linux и MacOS (все библиотеки включены).

python скрипт venn.py и папка src/; необходимо установить библиотеки: pip install beautifulsoup4 progress urllib3 matplotlib_venn venn.exe для Windows venn.elf для Linux venn.osx для Mac OS Аудитория хабов Данная функция дает представление о предпочтениях читателей определенного хаба по отношению сразу ко всем остальным хабам.Необходимо выбрать хаб и результат — гистограмма предпочтений читателей, то есть, что еще читают читатели данного хаба, в процентах от числа подписчиков исходного хаба.4eef7904cf7fefb2d46e1ef5ec807655.pngДоступно по адресу: www.habr-analytics.com/audience

Для данной функции имеется так же standalone версия с расширенным функционалом (например, с работой с хабами компаний) и хабра-статья с описанием: Исходные данные под названием hubs доступны на github, там же доступны исполняемые файлы для

Исходный код и структура проекта Основной (сбор данных, запись в базы данных, генерация графиков и т.д.) код проекта доступен на github.9d73cb737164760c699911ddaccf02b4.png(выше приведен код функции monitor).Так как скорее всего сайт ляжет от хабра-эффекта заранее вангую шутки в духе: у Хабра не прощупывается пульс или у пульса не прощупывается Хабр.

Но на самом деле это не страшно, если мы рассмотрим схему проекта, то заметим, что сбор данных, хранение и представление данных разнесены и пользователь только взаимодействует с интерфейсом отображающим графики, но это никак не влияет на сбор, хранение и представление данных.52f3d7f17300276a0ec5e52ddbb274e6.pngТо есть после того как хабра-волна пройдет все данные будут в порядке.

Технические детали: всё работает на PaaS Heroku, в виде двух приложений; оба на Flask; интерфейс: Flask+Bootstrap3; хранение данных mongoHQ и memcached. Сборщик данных парсит хабр, потому как доступ к API почему-то не дают (по крайней мере пока).

Заключение Проект, безусловно, не идеален и ему требуется тысяча и одна правка. И, возможно, вы разбираетесь в верстке, обработке данных или веб-разработке и хотите помочь? Советы, идеи и помощь в разработке только приветствуются.Есть идеи, что еще нужно реализовать? Ждем-с в комментариях и\или через любой другой канал связи.

© Habrahabr.ru