callidus77: Помница в нашей сетке монтажники подключали абонента. Пришли, воткнули сетевуху, а у него Фря и дров нету. Почесали головы и ушли. Чел через три недели наконец-то коннектится.
Грят: «Долго ж ты искал дрова.»
Он: «Я не искал. Я их сам написал.» Баш
Наверное, каждый автор трепетно следит за судьбой своих статей, такому автору на хабре всегда чего-то не хватает. Мне всегда не хватало инструментов наблюдения за статьями — поэтому я и решил их написать.
Под катом мы разберемся с основными инструментами ресурса и потенциальной возможностью применения. Весь инструментарий доступен по адресу http://www.habr-analytics.com, исходный код (основные функции) на github. За примерами и деталями — добро пожаловать под кат!
Структура статьи
- Пульс Хабра
- Монитор статей
- Анализ пользователей
- Пересечение хабов — диаграммы Венна
- Аудитория хабов
- Исходный код и структура проекта
- Заключение
*Осторожно трафик*
Пульс Хабра
Пульс — один из наиболее интересных индикаторов, он показывает динамику чтения хабра (точнее статей в «Новом»). Между точками фиксированный интервал в семь минут (плюс-минус минута). На графике ниже можем наблюдать уровень активности в ночь с воскресенья на понедельник. Хорошо видно, что статьи в понедельник утром читают в четыре раза активней, чем в ночь с воскресенья на понедельник (чего и следовало ожидать, но мы заранее не знаем «насколько» больше читают в понедельник утром)
В чем смысл?
Потенциальное применение: выбор времени для отправления статьи. Чем активнее люди читают хабр, тем больше шансов, что статью увидят. Соответственно, если индикатор в данный момент низкий, то возможно стоит пересмотреть время отправления статьи.
Доступен по адресу:
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