«Социальный граф хабрасообщества»
Разделы:
, Социальные сети
Сегодня, я хотел бы поведать рассказ о своём небольшом эксперименте над аудиторией Хабра. Предметом эксперимента стало построение социального графа хабрасообщества.ОписаниеЦели, преследуемые в эксперименте:
Парсинг и заполнение графаДля получения информации о пользователях и их друзьях, я написал скрипт parser.py:
Для разбора страниц я использовал BeautifulSoup. Класс Drawer отвечает за хранение и отрисовку графа. Отрисовка графа и сохранение изображенияКак уже было сказано выше, за хранение и отрисовку графа отвечает класс Drawer из модуля draw.py:
В этом классе мы храним во внутреннем поле экземпляр класса Graph из модуля NetworkX, в котором и будет находиться наш социальный граф. Следует отметить что класс Graph, предоставляет большое количество методов для работы с графом. Подробности по работе с модулем можно найти в документации. Следует обратить внимание на метод, который задаёт размер результирующей фигуры/графа. Параметр можно менять, в зависимости от количества вершин в графе. РезультатыРезультат проделанной работы, несколько отличается от планируюмых. В ходе работы скрипта, я выявил очень значительное потребление ресурсов. Как известно, примерное количество пользователей Хабра 60 000 человек. Даже если отбросить(как я собственно и делал) пользователей у которых отсутствуют друзья число всё равно значительное. Проверка работы программы осуществлялась на машине с 3 Гб оперативной памяти. Как только, начинается отрисовка графа, система начинала безбожно свопиться, поэтому число пользователей в графе пришлось сократить. В итоге я получил несколько версий отрисованного графа с разным количеством пользователей. На рисунке представлен граф, содержащий 852 пользователя: Как видите изображения приходится сильно сжимать для статьи, поэтому остальные приведу ссылками, ввиду большого размера изображений(7-14Мб): Перспективы
UPD: архив с изображениямиИзвиняюсь за проблемы со скачиванием изображений, залил на народ. UPD2: изображения на zoom.itСпасибо пользователю mstyura за совет и содействие. 4095 пользователей 7071 пользователь. Дата публикации: 2011-08-16 |