Анализ неактивных подписчиков VK: различия между версиями

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


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




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


[[Файл:voznes4.png]]
<mermaid>
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[Конец]
</mermaid>
    
    


Строка 80: Строка 101:
* Неактивные пользователи = все подписчики − активные пользователи
* Неактивные пользователи = все подписчики − активные пользователи


== Фрагменты программного кода ==
=== Получение данных из VK API ===
<syntaxhighlight lang="python">
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"]
    }
</syntaxhighlight>


=== Определение неактивных пользователей ===
<syntaxhighlight lang="python">
active_users = likes_users.union(comments_users)
inactive_users = all_members - active_users
</syntaxhighlight>
=== Расчет активности ===
<syntaxhighlight lang="python">
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"
</syntaxhighlight>


== Интерфейс приложения ==
== Интерфейс приложения ==
Строка 96: Строка 154:
[[Файл:voznes3.jpg]]
[[Файл:voznes3.jpg]]


== Результаты анализа в формате CSV ==
Данные автоматически загружаются из CSV-файла, размещенного в GitHub.
{{#get_web_data:
url=https://raw.githubusercontent.com/VoznesenskayaV/LabOP/main/inactive_subscribers_report.csv
|format=csv with header
}}
{| class="wikitable"
! user_id !! first_name !! last_name !! liked_posts_count !! commented_posts_count !! total_activity !! status
{{#for_external_table:
|-
| {{{user_id}}}
| {{{first_name}}}
| {{{last_name}}}
| {{{liked_posts_count}}}
| {{{commented_posts_count}}}
| {{{total_activity}}}
| {{{status}}}
}}
|}
Приложение имеет простой и удобный интерфейс, включающий:
Приложение имеет простой и удобный интерфейс, включающий:
* поле для ввода сообщества
* поле для ввода сообщества

Версия от 09:57, 27 марта 2026

Анализ неактивных подписчиков сообщества 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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Приложение имеет простой и удобный интерфейс, включающий:

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


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

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

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

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


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

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

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


Заключение

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

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

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