Анализ неактивных подписчиков VK

Материал из Поле цифровой дидактики

Анализ неактивных подписчиков сообщества VK

Описание проекта

В рамках данного проекта было разработано приложение для анализа активности подписчиков сообщества социальной сети ВКонтакте. Приложение позволяет выявлять неактивных пользователей, которые не взаимодействуют с контентом сообщества.

Анализ осуществляется на основе данных о лайках и комментариях к последним публикациям сообщества, полученных с помощью VK API.

Программа работает с любыми открытыми сообществами социальной сети ВКонтакте. Для анализа не требуется, чтобы пользователь являлся администратором сообщества, достаточно, чтобы сообщество было открытым и данные были доступны через VK API.


Цель проекта

Разработка программного приложения для анализа активности подписчиков сообщества ВКонтакте и выявления неактивных пользователей.


Задачи проекта

  • Изучить возможности VK API для получения данных о сообществе
  • Реализовать получение списка подписчиков
  • Реализовать получение данных о постах, лайках и комментариях
  • Разработать алгоритм определения активности пользователей
  • Создать удобный интерфейс приложения
  • Визуализировать результаты анализа


Используемые технологии

  • Python
  • VK API
  • Streamlit (для создания интерфейса)
  • requests (для работы с API)
  • pandas (для обработки данных)
  • matplotlib (для построения графиков)

Архитектура приложения

Приложение реализовано по модульному принципу и состоит из следующих компонентов:

  • app.py — пользовательский интерфейс (Streamlit)
  • vk_api_client.py — модуль взаимодействия с VK API
  • analyzer.py — модуль анализа активности пользователей
  • config.py — конфигурационные параметры (токен, настройки)
  • visualizer.py — визуализация данных


Описание работы приложения

Приложение реализовано в виде веб-интерфейса с использованием библиотеки Streamlit.

Пользователь вводит:

  • ссылку или короткое имя сообщества
  • количество последних постов для анализа

После запуска анализа приложение:

  • получает данные о сообществе
  • загружает список подписчиков
  • получает последние публикации
  • собирает данные о лайках и комментариях
  • определяет активных и неактивных пользователей


Алгоритм работы

Блок-схема работы приложения представлена ниже:

flowchart TD A[Начало] --> B[Ввод ссылки на сообщество] B --> C[Ввод количества постов] C --> D[Получение данных о сообществе] D --> E{Сообщество найдено?} E -- Нет --> F[Вывод ошибки] F --> G[Конец] E -- Да --> H[Получение списка подписчиков] H --> I[Получение последних постов] I --> J[Сбор лайков и комментариев] J --> K[Формирование списка активных пользователей] K --> L[Определение неактивных подписчиков] L --> M[Расчет статистики] M --> N[Вывод результатов] N --> O[Конец]



Метод определения активности

Пользователь считается активным, если он:

  • поставил хотя бы один лайк
  • или оставил хотя бы один комментарий

Если пользователь не совершал ни одного действия, он считается неактивным.

Формально:

  • Активные пользователи = пользователи с лайками ∪ пользователи с комментариями
  • Неактивные пользователи = все подписчики − активные пользователи

Фрагменты программного кода

Получение данных из VK API

def get_group_info(self, group_input):
    screen_name = self.normalize_group_input(group_input)

    response = self._request(
        "groups.getById",
        {
            "group_id": screen_name,
            "fields": "members_count"
        }
    )

    group = response["groups"][0]

    return {
        "id": group["id"],
        "name": group["name"]
    }

Определение неактивных пользователей

active_users = likes_users.union(comments_users)
inactive_users = all_members - active_users

Расчет активности

for user_data in member_map.values():
    total_activity = (
        user_data["liked_posts_count"] +
        user_data["commented_posts_count"]
    )
    user_data["status"] = "active" if total_activity > 0 else "inactive"

Интерфейс приложения

Начальная страница

Готовый анализ

График

Таблицы

Результаты анализа в формате CSV

Данные автоматически загружаются из CSV-файла, размещенного в GitHub.

user_id first_name last_name liked_posts_count commented_posts_count total_activity status
573249450 Анастасия Бабкина 5 5 active
484666968 Вероника Вознесенская 5 5 active
397490904 Валерия Килессо 5 5 active
225269261 Екатерина Меньшикова 5 5 active
321481483 Майя Нестерчук 5 5 active
316894354 Сеня Сырцева 5 5 active
272814781 Елизавета Белякова 3 3 active
604882469 Алина Губайдуллина 3 3 active
307225871 София Кречетова 3 3 active
469088234 Аня Пыжова 3 3 active
466517654 Юлия Тапинова 3 3 active
542221882 Софья Тимошенко 3 3 active
163852962 Анна Бартова 2 2 active
234789486 Сабина Джамалова 2 2 active
300681485 Анастасия Насырова 2 2 active
375806779 Олеся Пирожкова 2 2 active
194755805 Елизавета Стаказова 2 2 active
213880802 Ульяна Финкина 2 2 active
429447324 Дарья Чеботарь 2 2 active
343640155 Дарья Шишкова 2 2 active
284369056 Алёна Волкова 1 1 active
452384675 Дарья Гуркина 1 1 active
168743562 Мария Еремина 1 1 active
416974548 Катя Кусь 1 1 active
190974380 Елена Мошенина 1 1 active
474433787 Дарья Мраева 1 1 active
258128578 Аня Муханова 1 1 active
223094065 Виктория Нарыкова 1 1 active
364502246 Елизавета Отис 1 1 active
230491481 Елизавета Половинкина 1 1 active
625743818 Светлана Романова 1 1 active
186615055 Валерия Ширенина 1 1 active
170053838 Настя Ярошинская 1 1 active
542754889 DELETED inactive
656625494 'suran 'yi inactive
601175250 Varya Andreevna inactive
182274592 Julia Baklanova inactive
384694898 Sabina Barbieri inactive
354299863 Fenjel Fenjel inactive
696381298 Katya Katya inactive
617253815 Maria Laird inactive
455061046 Alexandra Shelkovnikova inactive
590290540 Da Shutka inactive
486426748 Valeria Skapisheva inactive
544658548 Alina Sorkina inactive
298774733 Sofy Toritsyna inactive
617255825 Nika Vvedenskaya inactive
537614588 Uliana Zvezdina inactive
543593330 Лиза Ёлкина inactive
513864232 Амирреза Аббаси inactive
348917176 Айтадж Аббасова inactive
208322104 Кира Азарова inactive
517342726 Вика Андреева inactive
825002462 Лейфрид Анна inactive
226684066 Саша Арлинская inactive
423663152 Таисия Ашуркова inactive
529793260 Алиса Бабкина inactive
501722230 Муслим Багаев inactive
454025498 Катерина Басова inactive
349921687 Татьяна Берг inactive
322235023 Алина Бродская inactive
299839050 Дарья Буланова inactive
266347087 Марина Буренина inactive
173658768 Наталья Вознесенская inactive
191331452 Карина Гайсина inactive
272891491 Екатерина Глоба inactive
202287373 Ксеня Голубкова inactive
236783421 Екатерина Гордеева inactive
816399029 Диана Грин inactive
450986405 Софья Гриценко inactive
494692297 Настя Гриценюк inactive
576058573 София Грызлова inactive
433131764 Анастасия Губанова inactive
231851171 Алиса Гунченко inactive
357795386 Карина Давтян inactive
530062870 Катя Денисова inactive
241051456 Юля Дереза inactive
472223001 Альбина Дзахсорова inactive
541812578 Ира Донина inactive
270043117 Милана Евтушенко inactive
133858807 Антон Елисеев inactive
213028302 Аня Ермакова inactive
257208974 Виктория Жебрак inactive
330303257 Асыл Жусуева inactive
425166366 Анна Зарецкая inactive
430554247 Карина Зарипова inactive
429396844 Александра Звягинцева inactive
271702050 Саша Зимаева inactive
439493660 Ирина Иванова inactive
817503908 Ирина Ивлева inactive
502575081 Даша Исаева inactive
225717896 Марианна Ишмаева inactive
392148111 Марина Караваева inactive
674180303 Мария Карышева inactive
530065370 Алина Касаткина inactive
399506848 Анфиса Князева inactive
575649312 Дарья Ковалькова inactive
590332598 Кристина Козина inactive
350897673 Екатерина Колмыкова inactive
292092770 Мария Кондратьева inactive
501454324 Валерия Кондукторова inactive
181118058 Кристина Коновалова inactive
214199522 Евгения Котерева inactive
320335692 Соня Котик-Кусь inactive
134495863 Ирина Кочубей inactive
327941852 Ксения Краева inactive
493600713 Александр Крайскваднюков inactive
270894734 Марина Кривунь inactive
413044129 Алёна Крячко inactive
365333145 Лиза Кукушкина inactive
445812502 Татьяна Лавренова inactive
172006943 Алина Лаппо inactive
445970949 Даша Ларионова inactive
531143797 Алиса Лебедева inactive
223230683 Соня Ложкина inactive
385250324 Юля Лозовская inactive
317902189 Алиса Макарова inactive
374079190 Сонечка Макеева inactive
359699411 Илья Малеванный inactive
356911717 Аделина Марчевская inactive
270647819 Екатерина Мельникова inactive
209784419 Алия Миндубаева inactive
640025470 Анастасия Минеева inactive
390818795 Елизавета Митянина inactive
825145034 Мария Молчанова inactive
526510787 Софья Морозова inactive
504574683 Полина Нагорская inactive
1028140014 Анастасия Напреенкова inactive
225291609 Кирилл Невмятуллин inactive
196372649 Вита Неволина inactive
816867749 Алёна Невядомская inactive
481269122 Иван Николаев inactive
452542840 Наталья Новикова inactive
217880710 Тимур Новоселов inactive
475340991 Алина Орищенко inactive
164741527 Оля Орлова inactive
547605464 Полина Писковатская inactive
169495333 Елена Писцова inactive
527783872 Лерочка Поднебесная inactive
229608554 Мария Рапина inactive
198869316 Екатерина Рататинова inactive
441921084 Екатерина Рогалева inactive
426507394 Ника Родионова inactive
328463262 Дарья Рыбакова inactive
102258841 Диана Рябикова inactive
294209635 Алина Сабитова inactive
214198583 Екатерина Савина inactive
279068051 Алина Салаватова inactive
316653898 Луиза Салихова inactive
232174835 Валерия Салтанова inactive
545068786 Виктория Свиркина inactive
201845092 Марина Семёнова inactive
462477590 Ева Степанова inactive
289354002 Варвара Сёмина inactive
286688510 Дарья Тарасова inactive
398722882 Амина Таржиманова inactive
356020477 Милана Тимофеева inactive
582294903 Полина Тяпкина inactive
262887580 Екатерина Федотова inactive
236507281 Лиза Федотова inactive
383839390 София Федышина inactive
82010609 Настя Филиппова inactive
311340865 Света Филиппова inactive
275998947 Дарья Харитонова inactive
248831700 Даниил Хасьянов inactive
411283261 Елизавета Цыганок inactive
559914893 Ксения Чеботарева inactive
561050279 Алёна Чебунькина inactive
416792021 Иван Черенков inactive
213290029 Ксюша Чернышевская inactive
581095149 Анастасия Чернышова inactive
523588192 Виктория Шевандо inactive
219074322 Виктория Шелмакова inactive
267279556 Елизавета Ячина inactive

Результаты работы

В результате работы приложения определяется:

  • общее количество подписчиков
  • количество активных пользователей
  • количество неактивных пользователей
  • процент неактивных подписчиков

Также формируется таблица пользователей и график распределения активности.


Практическая значимость

Разработанное приложение может быть использовано:

  • администраторами сообществ для анализа аудитории
  • для оценки вовлеченности пользователей
  • для выявления неактивных подписчиков
  • в маркетинговых исследованиях


Заключение

В ходе выполнения проекта было разработано приложение для анализа активности пользователей социальной сети ВКонтакте.

Данное приложение позволяет автоматизировать процесс анализа вовлеченности аудитории и выявления неактивных пользователей.

Проект демонстрирует применение API социальных сетей, методов анализа данных и визуализации информации.