Лев Тонких «Анализ дружеских связей VK с помощью Python»

Preview:

DESCRIPTION

Спикер: Лев Тонких, Team Lead в Phoenix Universe. Тема: «Анализ дружеских связей VK с помощью Python». ««Построим свой социальный граф ВКонтакте.» О спикере: Программист и идейный вдохновитель. __ Видео: https://www.youtube.com/watch?v=RkcX6ZWU56s#t=2207 Сайт: http://www.dataart.ru/ Facebook: https://www.facebook.com/DataArt.Enjoy Vkontakte: http://vk.com/dataart_enjoy Twitter: https://twitter.com/DataArt_Enjoy

Citation preview

Social GraphЛев Тонких

Wolfram|Alpha Personal Analytics

Статья на Хабре

● Анализ дружеских связей VK с помощью Wolfram Mathematica

● “На моих 333 друзьях это заняло 119 секунд” - автор об получении списка общих друзей

???

119???

Граф дружеских связей VK.COM

● VK API● Получить данные● Визуализация графа

Что нужно?

● Python 3.4● requests (lib)● d3 (visualization)● Firefox (XMLHttpRequest)

Standalone/Mobile-приложения

● Создаем свое● Подтверждаем права● Попадаем в стр. управления (ID)

Авторизация приложения

● Аутентификации юзера на сайте ● Разрешение юзером доступа к данным● Передача в приложение access_token

Используемые методы

● users.get● friends.get● friends.getMutual● execute

Немного подумаем

● 25 друзей● С каждым другом есть 1 общий друг

Схема 1

Схема 2

Схема 3

Немного про execute

● code (VkScript)● 25 обращений к методам API

Схема 4

25 раз!

return {API.friends.getMutual({"source_uid":id_s, "target_uid":id_t}), // * 25};

Хранимые процедуры

На том же VkScript

execute.getMutual?source=id&targets=ids

Схема 5

Время выполнения

333 друга - 119 сек. VS 348 друзей - 9 сек.

Harder, Better, Faster, Stronger

Ошибки в доках

'error_msg': 'Access denied: user deactivated', 'error_code': 15спустя 2 дня:

+ uid вместо user_id

In The End

● [({Ваш друг}, [{}, {}]),()]● Генерим json● Магия d3 + добавляем картинки к каждому

узлу

Вопросы?

Habrahabr Github

Спасибо!