Skip to content

r1natt/vk_social_graph

Repository files navigation

VK social graph

Данный проект предназначен для построения и визуализации социального графа пользователя ВКонтакте на основе его друзей.

🌟 Preview

Пример графа 3-го колена

🚀 Описание

Проект позволяет:

  • Получать список друзей пользователя ВКонтакте (до заданной глубины — "колена").
  • Сохранять информацию о пользователях и их связях в базу данных MongoDB.
  • Формировать граф связей и экспортировать его в формат, поддерживаемый Gephi (GEXF, GML, GraphML) для дальнейшей визуализации.

📦 Установка

  1. Установите MongoDB: Инструкция по установке
  2. Клонируйте репозиторий:
    git clone https://github.com/r1natt/vk_social_graph
    cd vk_social_graph
    
  3. Создайте виртуальное окружение и установите зависимости:
    python3 -m venv env
    source ./env/bin/activate
    pip install -r requirements.txt
    
  4. Создайте файл конфигурации config.ini на основе примера:
    cp config.ini.example config.ini
    
    Затем откройте config.ini и укажите ваши значения для ключа VK, параметров MongoDB и тестовых пользователей.

🔑 Получение API токена

  1. Создайте мини-приложение VK: VK Apps
  2. Перейдите в "Разработка" → "Ключи доступа"
  3. Скопируйте "Сервисный ключ доступа" и добавьте его в
SERVICE_KEY = ваш_токен

⚙️ Использование

1. Парсинг друзей пользователя

python main.py parse_friends 123456 2
  • parse_friends — команда для запуска парсинга друзей.

  • 123456 — VK ID пользователя.

  • 2 — глубина парсинга (колено).

  • Дополнительно можно указать флаг --update для обновления данных:

python main.py parse_friends 123456 2 --update

2. Построение графа на основе данных о друзьях

python main.py build_graph 123456 2
  • build_graph — команда для построения графа.
  • 123456 — VK ID пользователя.
  • 2 — глубина построения графа.

📊 Визуализация

В текущей версии команда build_graph формирует только файл графа в выбранном формате (.gexf, .gml или .graphml). Визуализация самого графа не производится автоматически внутри проекта.

Для просмотра, анализа и стилизации графа используйте стороннее open-source приложение Gephi.

Откройте сгенерированный файл графа в Gephi, чтобы визуализировать структуру связей, применить фильтры, раскрасить узлы и воспользоваться всеми возможностями анализа социальных графов.

🛠️ Архитектура

  • Модульность: Код разделён на независимые модули: запросы к API, работа с БД, парсинг, построение и экспорт графа.
  • Модели данных: Для обмена данными между модулями используются строгие pydantic-модели, dataclass и enum, что обеспечивает надёжность и удобство поддержки.
  • Обход графа: Используется итеративный BFS вместо рекурсии — это упрощает отладку и позволяет строить графы любой глубины.

About

Парсер ВК для создания социального графа на Python

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages