Вы находитесь на странице: 1из 13

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ

ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Астраханский государственный университет»

Кафедра информационных технологий

РЕФЕРАТ
Проект «Анализ страниц Вконтакте»
по дисциплине «Основы программирования»

Выполнили: Студент гр. ИТ-11


Гудков Максим

Проверила: Смирнова Юлия Александровна

Оценка_________ Дата__________

Подпись
преподавателя________________

Астрахань - 2018
СОДЕРЖАНИЕ

ВВЕДЕНИЕ .............................................................................................................................2
1 Технический проект ...........................................................................................................3
1.1 Описание предметной области ...................................................................................... 3
1.2 Описание технологии обработки информации ............................................................ 4
1.3 Информационно-логическая модель системы ............................................................. 5
1.3.1 Описание предметов входной информации............................................................... 5
1.3.2 Спецификации обработки информации ..................................................................... 5
2 Рабочий проект ...................................................................................................................6
2.1 Общие сведения о работе программы .......................................................................... 6
2.2 Функциональное назначение ......................................................................................... 6
2.3 Установка и выполнение программного продукта ...................................................... 6
2.4 Руководство пользователя ............................................................................................. 6
Программа и методика испытания проекта .........................................................................7
ЗАКЛЮЧЕНИЕ .......................................................................................................................11
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .............................................................12
Подп. и дата
Инв. № дубл
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 1


ВВЕДЕНИЕ

Социальные сети сегодня - среда в которую погружены современные подростки. В


последнее время одной из основных форм проведения досуга молодежи стало времяпре-
провождение в социальных сетях. Стало реальностью такое явление как зависимость от со-
циальных сетей.
По данным социологического опроса исследовательского холдинга «Ромир» от ап-
реля 2015 года 143 минуты в день в среднем проводят россияне в социальных сетях, а это
около 10 процентов в сутки, для примера человек в среднем тратит на сон около 34 процен-
тов. Также по данным социологического опроса ВЦИОМ от 2 июня 2017 года 78% молодых
людей в возрасте от 18 до 24 лет практически ежедневно пользуются социальной сети Вкон-
такте. Исходя из вышеизложенного факта, можно сделать вывод, что социальная сеть Вкон-
такте почти для каждого является неотъемлемой частью жизни.
Социальная сеть Вконтакте позволяет общаться с другими пользователями, прослу-
шивать музыку, обмениваться файлами и многое другое. Хочется выделить возможность
вступления в различные сообщества и создания своего сообщества. Пользователи выби-
рают сообщества исходя из своей профессиональной деятельности, хобби, интересов, целей
и др.
На сегодняшний день в социальной сети Вконтакте зарегистрировано более
Подп. и дата

183 000 000 сообществ различных тематик. Исходя из вышеизложенного, можем сделать
вывод, что по группам можно определить интересы определенного пользователя. Именно
это мы и взяли как основную идею проекта
Инв. № дубл
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 2


1 Технический проект

1.1 Описание предметной области

У социальной сети Вконтакте есть свое API для разработчиков, методами которой
разработчики могут взаимодействовать с сервером, а именно получать и отправлять инфор-
мацию.
Для начала взаимодействия меня как пользователя с сервером Вконтакте, социальная
сеть мне предоставила индивидуальный Token (Токен).
Для взаимодействия с сервером используются POST и GET запросы следующего фор-
мата:
https://api.vk.com/method/МЕТОД?ПАРАМЕТРЫ&access_token=TOKEN'&v=ВЕРСИЯ
 Метод – команды для работы с сервером;
 Параметры – уточнение для сервера, с чем именно должен работать указанный ме-
тод;
 TOKEN – идентификатор, позволяющий серверу понять, от какого пользователя от-
правляются команды;
 ВЕРСИЯ – версия API, с которой работает программа (в моем случае 5.92).

Отправляя запрос на получение некоторых данных с сервера, мы получаем JSON


файл, структура которого зависит от запроса.
Ниже представлен пример структуры JSON файла, после запроса getProfileInfo ко-
торый предоставляет информацию по текущему профилю (этот метод не принимает пара-
Подп. и дата

метров) (рисунок 1):


Инв. № дубл
Взам. инв №
Подп. и дата

Рисунок 1 ответ сервера


Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 3


Первое, что мы должны сделать - это получить по привычному для пользователя иден-
тификатору (id) Вконтакте, его User ID, для дальнейшего взаимодействия именно с этим
пользователем.
Отправляя запрос по User ID на сервер, мы получаем в свою очередь JSON файл, в
котором содержится информация, включающая в себя список групп, на которые подписан
пользователь.
Отправляя запрос по ID группы, мы получаем информацию по группе, в которой под
ключом ‘activity’ содержится категория группы, которую указал автор.

1.2 Описание технологии обработки информации


Основные функции программы:
 Считывание id с файла;
 Отправка запросов;
 Получение JSON файлов;
 Просчет процентного соотношения каждой тематики групп пользователя;
 Процент процентного соотношения каждой тематики групп всех пользовате-
лей, записанных в файл;
 Визуализация данных с помощью круговой диаграммы.
Использованные технологии:
Подп. и дата

 VkAPI – интерфейс программирования для социальной сети Вконтакте;


 Requests – модуль позволяющий отправлять http запросы;
 JSON – текстовый формат обмена данными;
 Matplotlib – модуль позволяющий визуализировать данные;
Инв. № дубл

 Tkinter – модуль для создания графического интерфейса.


Каждый пользователь Вконтакте может сделать свой профиль закрытым или скрыть
список групп, в последствии чего программа не сможет получить доступ к списку групп
Взам. инв №

Вконтакте, также группа может быть закрыта или заблокирована, поэтому необходимо про-
водить дополнительную проверку на наличие доступа к группе или к списку групп пользо-
вателя.
Базовый алгоритм для одного пользователя выглядит таким образом (рисунок 2):
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 4


Рисунок 2 - блок схема алгоритма

1.3 Информационно-логическая модель системы


Подп. и дата

1.3.1 Описание предметов входной информации


Входным документом программы является текстовый файл (*.txt) в котором записаны
id пользователей следующим способом: в каждой строчке по 1 id. Файл выбирается с помо-
щью диалогового окна, в котором можно выбрать любой текстовый файл.
Инв. № дубл

1.3.2 Спецификации обработки информации

Для удобства пользования программой в консоли во время выполнения программы


выводится процентное соотношения выполнения программы.
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 5


2 Рабочий проект
2.1 Общие сведения о работе программы

Программный продукт разработан средствами языка программирования Python 3.5


входящий в интегрированную среду разработки JetBrains PyCharm. Программа использует
библиотеки requests, time, os, re, matplotlib, tkinter.

2.2 Функциональное назначение

Программа анализирует страницу пользователя Вконтакте по тематикам групп, на


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

2.3 Установка и выполнение программного продукта

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


библиотеки: requests, re, matlolib, tkinter.
Есть возможность собрать проект с помощью модуля py2exe или других для исполь-
зования программы без установки сторонних библиотек.

2.4 Руководство пользователя


Подп. и дата

Для работы с программным продуктом необходимо после запуска выбрать файл из


диалогового окна для выбора файлов и нажать кнопку для начала выполнения. После окон-
чания работы программного продукта в папке с программой будут лежать (при n – количе-
ство пользователей в файле, к списку групп которых мы имеем доступ) n+1 текстовых фай-
Инв. № дубл

лов с расширением txt и n+1 графических файлов с расширением png.


Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 6


Программа и методика испытания проекта

Проверка программного продукта должна доказать правильность выполнения следую-


щих операций:
 Корректное отправление запросов.
 Корректное считывание JSON файлов.
 Просчет процентного соотношения каждой тематики групп.
Рисунок 4 – Загрузка программы
Для работы, программе нужно указать текстовый файл. Для добавления файлов,
необходимо нажать запустить программу, после чего откроется диалоговое окно. После
нажатия, программа предложит выбрать файл (Рисунок 3):
Подп. и дата
Инв. № дубл

Рисунок 3 - выбор файла


После добавления файлов будет доступен простейший интерфейс с кнопкой для
Взам. инв №

начала выполнения программы (рисунок 4):


Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 7


Рисунок 4 - интерфейс
По нажатию на кнопку, вызывается функция, которая анализирует каждого пользо-
вателя, записывает полученные данные. Прогресс выполнения программы в процентах за-
писывается в консоль (рисунок 5):
Подп. и дата

Рисунок 5 - прогресс выполнения программы


После завершения выполнения программы, в папке с программой будут файлы с
данными. Название файлов строится следующим образом (рисунок 6):
Инв. № дубл

 Для отдельного пользователя отправляется запрос для получения его имени


и фамилии в социальной сети Вконтакте. Результативные название: ИМЯ
ФАМИЛИЯ.txt и ИМЯ ФАМИЛИЯ.png
Взам. инв №

 Для общих файлов названия следующие: Общее.txt и Общее количество.png


Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 8


Рисунок 6 - результативные файлы
В качестве проверки, я проверил свою страницу, так как вы этом случае программа
с моим токеном имеет доступ ко всем группам, на которые я подписан. В этом случае я
подписан на 201 группу:
Подп. и дата

По результату выполнения моей программы, она проанализировала 201 группу:


Инв. № дубл
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 9


Рисунок 7 - текстовое представление результатов
Подп. и дата
Инв. № дубл
Взам. инв №
Подп. и дата

Рисунок 8 - графическое представление результатов


Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 10


ЗАКЛЮЧЕНИЕ

По итогам проекта разработанна программа для анализа пользователей Вконтакте по


списку сообществ.
Предложенная программа позволяет решать следующие задачи:
 Считывание id с файла;
 Отправка запросов;
 Получение JSON файлов;
 Просчет процентного соотношения каждой тематики групп пользователя;
 Процент процентного соотношения каждой тематики групп всех пользовате-
лей, записанных в файл;
 Визуализация данных с помощью круговой диаграммы.
Программа работоспособна и проверена.
Подп. и дата
Инв. № дубл
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 11


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Смирнова Ю.А., Учебное пособие по дисциплине «Основы программирования»


2. ВЦИОМ социологический опрос
3. "Ромир" социологический опрос
4. Описание методов API Вконтакте
5. Краткое руководство по библиотеке Python Requests
6. Обучение Python GUI (уроки по Tkinter)
7. Построение графиков в Python при помощи Matplotlib
Подп. и дата
Инв. № дубл
Взам. инв №
Подп. и дата
Инв. № подл.

Лист

Изм Лист № документа Подпись Дата 12