Пульс Хабра

в 7:17, , рубрики: анализ данных, Медиа, Статистика в IT, Хабрахабр API, метки: ,

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

Наверное, каждый автор трепетно следит за судьбой своих статей, такому автору на хабре всегда чего-то не хватает. Мне всегда не хватало инструментов наблюдения за статьями — поэтому я и решил их написать.
Пульс Хабра

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

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

  1. Пульс Хабра
  2. Монитор статей
  3. Анализ пользователей
  4. Пересечение хабов — диаграммы Венна
  5. Аудитория хабов
  6. Исходный код и структура проекта
  7. Заключение

*Осторожно трафик*

Пульс Хабра


Пульс — один из наиболее интересных индикаторов, он показывает динамику чтения хабра (точнее статей в «Новом»). Между точками фиксированный интервал в семь минут (плюс-минус минута). На графике ниже можем наблюдать уровень активности в ночь с воскресенья на понедельник. Хорошо видно, что статьи в понедельник утром читают в четыре раза активней, чем в ночь с воскресенья на понедельник (чего и следовало ожидать, но мы заранее не знаем «насколько» больше читают в понедельник утром)
Пульс Хабра

В чем смысл?

Потенциальное применение: выбор времени для отправления статьи. Чем активнее люди читают хабр, тем больше шансов, что статью увидят. Соответственно, если индикатор в данный момент низкий, то возможно стоит пересмотреть время отправления статьи.

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

Монитор статей


Пожалуй, это одна из функций, которой мне настолько не хватало, что отдельно бы ещё написал в виде standalone приложения (если вы тоже считаете, что это отличная идея — напишите в саппорт пусть вернут стену выдадут мне уже токен для API — идеально бы интегрировать эту функцию в Хабр).

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

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

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

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

Просмотры: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели
Пульс Хабра
Избранное: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели
Пульс Хабра
Репосты в соц сетях: Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели
Пульс Хабра

Для сравнения график просмотров этой же статьи через 27 часов
Пульс Хабра

В чем смысл

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

В целом, монитор даёт интегральный слепок распространения статьи в сети.

Анализ пользователей


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

Интерфейс предельно простой — имя пользователя, тип данных и большая кнопка.
Пульс Хабра

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

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

Рассмотрим графики чуть детальней:
Просмотры
Пульс Хабра
Рейтинг
Пульс Хабра
Избранное
Пульс Хабра

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

Зачем это нужно?

С одной стороны позволяет взглянуть на историю своих статей на хабре; с другой, это гораздо более информативная подача профиля во времени, чем пара финальных чисел.

Пересечение хабов — диаграммы Венна


Не задумывались, что выбирая второй или третий хаб для статьи, вы вполне можете не покрывать новой аудитории? Для того, что убедиться в том, что хабы не пересекаются и сделана эта функция. Необходимо выбрать два или три хаба и кликнуть на большую кнопку.
Пульс Хабра

Доступно по адресу:
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

Аудитория хабов


Данная функция дает представление о предпочтениях читателей определенного хаба по отношению сразу ко всем остальным хабам.
Необходимо выбрать хаб и результат — гистограмма предпочтений читателей, то есть, что еще читают читатели данного хаба, в процентах от числа подписчиков исходного хаба.
Пульс Хабра

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

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

Исходный код и структура проекта


Основной (сбор данных, запись в базы данных, генерация графиков и т.д.) код проекта доступен на github.
Пульс Хабра
(выше приведен код функции monitor).

Так как скорее всего сайт ляжет от хабра-эффекта заранее вангую шутки в духе: у Хабра не прощупывается пульс или у пульса не прощупывается Хабр.

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

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

Заключение


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

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

Автор: varagian

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js