Как стать автором
Обновить

Комментарии 20

Я занимался этим, почти у каждого есть друг или друг друга, который имеет заоблачное число друзей.

Глючит, но с трудом работает:
vk.com/app1886758#chain=1=345

Место 1 и 345 подставьте свои ID.

Вот пример поинтереснее:
Взял ПД и почти случайный номер:
vk.com/app1886758#chain=1=10273191
Основан на ссылки на эту статью: habrahabr.ru/post/273191

Работает по ссылке с обновлениями. После верефикации ВК, приложение утратило значение.

Спасибо за ссылки, я обязательно ознакомлюсь. Дело в том что мне попадалась только статья об анализе дружеских связей, а поскольку я два месяца назад еще не знал что такое Python и вообще программирование в целом, то и этот результат считаю достижением для себя.
Не стоит превращать хабр в «Опубликуй свой Hello World!». Добавьте чего-нибудь научного, какой-нибудь статистический анализ с гугл картами и графиками для визуализации
Если объективно, то ни одна из приведенных выше ссылок не дублирует мой материал. Не стоит думать, что вся статья — это «Hello World», не вникнув в контекст, а прочитав только мой комментарий о том, что у меня нет опыта в разработке. Это не оправдание, а факт.
Объективно, в моем коментарии конструктивная критика, я описал, как сделать лучше. Вы можете либо дальше спорить либо сделать лучше
За критику спасибо, гугл карты — хорошая идея. А спорить — это для слабаков.
Каждому бы писать такой Hello world с визуализацией и многопоточностью) для первой задачи на python впечатляет. Идея визуализации тоже очень понравилась.
Вот моя попытка сделать что-то похожее. У меня получилось диаметр сетки вк если память не изменяет 4.3, так что 6 рукопожатий для социалок это очень завышенная планка.
Когда контакт только появился, ради интереса создал группу, которая для увеличения числа пользователей типа исследовала эту теорию.
Мы не были первыми, у кого количество членов группы перевалило 10к, но 20к были наши. =)

Сейчас для того, чтобы найти кратчайший путь до другого человека достаточно у любого рандомного человека открыть список друзей, пройти по первой ссылке, на другой странице то же самое — список друзей, первая ссылка.
Я таким образом могу только путь до жены найти.
Метод users.get доступен без авторизации. Когда я делал что-то схожее, грузил данные в 64 потока. Ответ на запрос приходит с задержкой в доли секунды, а время передачи файлика, имхо, намного меньше. Получалось, если меньше 64 потоков — медленнее, больше — упирался в скорость интернета (или мне так казалось).
Да, вы правы. На такие запросы как users.get, friedns.get, где в параметры не передаются списки значений, ответ от сервера приходит очень быстро. Все изменяется, когда начинаешь использовать execute, в котором 25 методов с комплексными параметрами. Более 10 секунд может быть.
Спасибо, интересно.

Делал нечто подобное, но хотел построить граф групп френдов для целого города.
Список френдов получал get-запросом на api.vk.com/method/friends.get, там не требуется токен. Дальше просто в цикле делал запросы, ну и складывал в базу.
В принципе работало, но получилось слишком долго и медленно — небольшой город на 200тыс «сливался» около 15 часов. На Москву замахиваться с такой скоростью обработки я не рискнул :)

Вопрос как максимально быстро скачать всех юзеров города для меня пока открытый. Может действительно стоит тупо распараллелить.
Мне кажется, что самый оптимальный вариант — это использование execute в комплексе с мультипоточностью. Сделайте ботов, получите для них токены и вперед. Можно с одного IP, по крайней мере до каких-то пор.
Кстати, кроме метода execute, возможно еще использовать хранимые процедуры. Это тот же VKscript, но который хранится на сервере. Прироста в производительно я так понимаю никакой не будет, а просто экономия трафика. Поправьте, если я не прав.
Спасибо, попробую.
Кажется, все кому не лень с появлением соц. сетей стали проверять эту теорию. И, надо же, все сходятся во мнении, что она «в общем то работает».

А по теме, было бы неплохо вытаскивать только людей с количеством связей < 100 (в своей реализации: https://github.com/Sild/vk_chain_friends я использовал ограничение в 300), а ещё лучше брать только топ 30-50 активных друзей.

Да и надежность этого всего… Добавить в друзяшки человека !== Иметь связь с человеком.

Согласен. По заголовку стало интересно, как же будут проверять. Дочитал до API вконтакте и приуныл. :(
Хочу поддержать — статья очень понравилась, не смотря на то, что раньше уже писали на эту тему.
Особенно впечатлила визуализация — не думаю, что она информативна, зато очень красивая.

Идея для улучшения:
Поставить фильтр на друзей — считать друзьями только тех, кто достаточно часто взаимно лайкает посты друг друга.
Спасибо, интересно. Хотя думаю логику «кого считать друзьями» нужно сделать более гибкой. И об ограничении на количество друзей из предыдущего поста — тоже согласен.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории