View in Telegram
Вселенная Telegram и tech каналы Телеграм сейчас является основным источником контента для многих. Стало интересно сделать анализ всех телеграм каналов: подписчики, рейтинги, частота статей, процент репостов, процент рекламы и т.д., поэтому посмотрел как можно достать данные. Какого-то сервиса, где можно сразу быстро и просто взять все каналы и набор метрик по ним, я не нашел, поэтому посмотрел что есть из готовых данных. Существуют агрегаторы данных телеграм типа tgstat. Похоже что наиболее простой способ - парсить данные агрегаторов. Варианты с ботами, виртуальными аккаунтами показались более затратными. Итак, посмотрел несколько агрегаторов, взял на пробу три датасемпла. Самым адекватным показался семпл tgstat, поэтому, остановился на нем. В сервисе надо регистрироваться по телеграм аккаунту. Контент динамический, то есть, подгружается по клику. В парсинге всех данных не было смысла - важно было посмотреть что получится на семплах. Спарсил несколько категорий RU домена. Сегодня расскажу про tech каналы с этой страницы. Это каналы категориии 'Технологии', Россия. Есть несколько каналов из этой категории, читаю их ежедневно, ну и этот канал тоже о технологиях. Теперь о парсинге. У tgstat есть защита от ботов, регистрация по телеграм аккаунту, динамический контент (не все загружается сразу). Питоновская библиотека requests здесь не работает. Playwright не может регистрироваться с внутренних браузеров - ошибка. Поэтому, делаем максимально 'человеческий' скрипт. Скрипт повторяет действия человека. Запускается Хром в режиме отладки, скрипт логинится, нажимает кнопки для загрузки контента в этом браузере и скачивает данные. Все сохраняется в csv, поля: Категории 1. id канала 2. Техническое название канала с @ в начале 3. Название канала 4. Ссылка на лого канала 5. Описание канала Метрики: 6. Число подписчиков 7. Дата последней активности Сохраняем только каналы с числом подписчиков 100 и больше, и из 15и тысяч остается 7635. С названиями каналов есть нюансы в парсинге, но обойти можно. Итого, датасет готов, можно покрутить и поискать инсайты. Лого скачал скриптом. Первые 20 каналов сильно выделяются на фоне остальных огромным числом подписчиков. Поэтому хотелось показать сразу все каналы, построить 'вселенную' каналов. Визуализация - packed bubbles c лого и размерами кругов пропорциональными числу подписчиков. Теперь к самой визуализации. Packed bubbles можно делать различными способами и в разных средах. В BI - большие ограничения, питон - долго считает (пробовал, но ждать долго). Поэтому, победил Процессинг, сделал на p5js, алгоритм collide. В коде js есть 7 параметров, их можно настраивать, получая разные вариации диаграммы. Долго игрался с этим, в итоге, в комментах приложил 3 визуализации в разрешении 8k: 1. Каналы 100 и более подписчиков. 7635 штук. 2. Каналы 1000 - 100000 подписчиков. 4535 штук. 3. Каналы 10000 - 100000 подписчиков. 1009 штук. Получились своего рода вселенные со звездами и планетами (самое то на fullscreen). На одной картинке можете видеть все каналы и представить масштабы контента в телеграм. Разрешение высокое, можно зумить и искать интересные каналы. Контент 3ей категории читаю больше всего, поэтому, сделал интерактивный виз в Tableau именно в этом диапазоне подписчиков. Координаты кругов взял из js. Интерактив с фильтрами и хайлайтами в Tableau Здесь можно найти канал, выбирать диапазон подписчиков и рейтинги на основе числа подписчиков. Можно читать описание и переходить в сам канал по клику. Из того что читаю: LEFT JOIN, Reveal the Data, Инжиниринг данных, Время Валеры, Чартомойка и другие. Интересно получилось. Cмотрел еще категории 'блоги' и 'спорт' . Там кривые по рейтингам другие совершенно. Про это тоже расскажу. До визуализации всей телеграм вселенной осталось немного.
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily