Программа для поиска единомышленников ВКонтакте [Open source]
VK предоставляет очень неплохие инструменты для таргетирования рекламы, которые позволяют найти людей нужного пола, возраста, социального и семейного положения, подписанных на определенные группы и т. д. Это только верхушка айсберга, если покопаться в больших данных, доступных соцсетям, можно узнать про человека чуть ли не больше, чем он сам о себе знает.
При этом механизма поиска новых друзей фактически нет, что довольно иронично в контексте социальной сети. С другой стороны, оно и понятно, если что-то не приносит дохода, значит развиваться, скорее всего, не будет. Для знакомств VK не так давно запустил приложение, но, насколько я понимаю, это фактически клон Tinder, и он совсем никаких данных из профилей не подтягивает, даже банального отношения к курению или алкоголю — от соцсети там только авторизация.
Нам стало интересно, насколько реально исправить эту ситуацию с помощью VK API, и вот, что из этого вышло:
Тупая девушка, говорящая статусами из соц сетей
Как было?
Итак, для начала стоит расписать исходное состояние. Единственная адекватная стратегия, которая приходит на ум — это найти сообщество, которое максимально близко тебе по мировоззренческим / эстетическим / хоббийным показателям, и открыть поиск по подписчикам. Ввести некоторые фильтры, например возраст, и дальше уже смотреть просто всех подряд.
Но у этого варианта есть следующие минусы:
- Много заброшенных, закрытых, фейковых профилей
- Поиск по полям жизненной позиции сломан
- Мультивыбора в поиске нет, то есть негативное и резко негативное отношение к алкоголю, например, — выбрать нельзя
- Приходится постоянно переключаться между вкладками браузера
- Приходится вручную оценивать, на каком месте у пользователя в списке рассматриваемый паблик, правда ли он ему интересен
- Приходится вручную оценивать, на что ещё подписан пользователь, нет ли там других интересных нам пабликов, или чего-то неприемлемого.
- Нельзя пометить просмотренные профили, если за раз всех не просмотрел
Как стало?
Мы решили попробовать сделать проект, основанный на анализе подписок, с удобным интерфейсом и средствами автоматизации. В полностью автоматическом режим алгоритм примерно такой:
- Пользователь логинится через VK
- Скачиваем список его подписок (меньше 1М)
- Оцениваем каждую из них в соответствии с положением в списке
- Скачиваем N подписчиков из каждой его группы (N зависит от того, сколько времени он указал)
- Находим в базе пользователей, подписанных на несколько групп, и рассчитываем их рейтинг
- Для людей с наибольшим рейтингом скачиваем их списки подписок, чтобы убедиться, что найденные группы находятся не на 2048 месте построить их топ интересов
🦋Крутые статусы на английском🌼прикольные статусы
Далее программа переходит в ручной режим, где можно дополнительно указать нежелательные группы, изменить оценки, добавить группы, на которые не подписан, но люди из которых тоже интересны — всё пересчитается, топ перестроится.
Есть ещё полный режим, который можно применять для анализа отдельных групп небольшого размера. В нём база формируется исключительно путем получения данных от каждого пользователя, не требуется скачивать все группы в списке.
Про исходный код
Мы решили открыть исходники, чтобы каждый (знающий С++, ага) мог экспериментировать даже с теми параметрами, которые не вынесены в настройки. Ну и никто не переживал, что его страницу уведут в рабство к ботоводам, а данные продадут в даркнете.
Некоторые разработчики открывают код, чтобы похвастаться — смотрите как я могу. Это не тот случай. Проект развивался без четкого ТЗ, с постоянно меняющимися требованиями, и хорошей архитектуры тут как класса быть не может — даже самая гибкая, чаще всего, гнётся совсем не там, где предполагалось. После того, как проект примет финальный вид, и требования становятся понятны, обычно приходится делать очень масштабный рефакторинг, но в данном случае мы решили повременить с ним.
Во-первых, программа стала особенно актуальной в свете последних событий, и затягивать релиз ещё на месяц было бы глупо. Вдруг кому-то на карантине особенно одиноко, можно найти друзей в интернете.
Во-вторых, непонятно, интересна ли кому-нибудь вообще эта программа, и если нет — то смысла тратить время на улучшения кода тоже нет, ведь поддержки не предполагается. Так что за технический долг и срезание углов сильно не пинайте, мы в курсе.
Так же пришлось отложить и другие доработки, например ускорение работы через процедуры VK, или учет позиции группы в списке пользователя, чтобы уменьшить вклад групп, находящихся низко. Более ранний релиз и большая стабильность оказались важнее.
Системные требования
Монитор от 1366 х 768, рекомендуется FullHD. SSD тоже лишней не будет.
Базы больше чем на 5 миллионов не тестировали, после 10 наверняка начнутся сильные тормоза. Перейти на более мощную СУБД можно довольно быстро (абстракции Qt позволяют), но пока это представляется нецелесообразным, потому как многомиллионные паблики мало что говорят о подписчиках, нишевые вещи не могут быть интересны настолько многим.
Исходники тут. Бинарники под Windows и Linux.
P.S. У меня есть мысли о том, как VK могла бы улучшить ситуацию на своей стороне, но это тема для отдельной статьи.
P.P.S. У многих айтишных пабликов (в т.ч. Хабра) списки подписчиков закрыты, и учитывать их не получится.
- open source
- социальные сети
- вконтакте
Источник: habr.com
Поиск групп ВКонтакте по ключевому слову
Сегодня разберемся, как происходит поиск групп ВКонтакте по ключевому слову в названии, описании или статусе, но для начала общая информация о сообществах.
Работа с ЦА сводится к поиску пользователей по:
- определенным параметрам (гео, возраст, профессия, интересы),
- участию и активностям в конкретных сообществах.
Во втором случае мы сначала ищем нужные сообщества и затем работаем с ними в зависимости от дальнейших задач.
Общая информация
Сообщества бывают нескольких типов:
Группы (открытые, закрытые, частные)
- В группу можно вступить и приглашать друзей
- Пользователь может скрыть свои группы, тогда парсер не сможет идентифицировать его как участника той или иной группы
Мероприятия (встречи)
- Используются для продвижения онлайн- или офлайн-мероприятий.
- Вступая в такое сообщество, человек может выбрать варианты: Точно пойду (участник) или Возможно пойду (возможный участник).
- Участники получают уведомление перед началом мероприятия.
- Парсер может найти прошедшие или предстоящие мероприятия.
- Подробнее о работе с этим типом сообществ здесь.
Публичные страницы (паблики)
- Страницы, которые невозможно скрыть в настройках профиля.
- На них можно подписываться и предлагать новости.
- Парсер может находить сообщества по разным критериям.
Рассмотрим поиск групп ВКонтакте
по ключевому слову в:
- Названии
- Статусе
- Описании
А теперь подробнее о каждом способе поиска.
Поиск групп ВКонтакте по ключевому слову в названии
Чаще всего в название сообщества добавляют слова, по которым его можно идентифицировать. Например, кафе, школа, ресторан. Это самый распространенный способ поиска сообщества.
Вот так выглядит название сообщества с ключевым словом.
Давайте разбираться, как искать такие сообщества.
- Для работы заходим во вкладку Поиск > Сообщества > Ключевая фраза
Логика поиска сообществ по ключевым фразам проста. Сначала вводим ключевые фразы, по которым будет проходить поиск. Затем выставляем другие характеристики сообществ при необходимости.
Кроме общих параметров, в поиске можно выбрать:
Верифицированные сообщества
- Такие сообщества проверил и верифицировал сам ВК
- Возле их названия появляется специальный значок
- При наведении можно прочитать справочную информацию
- Если в названии сообщества будет написано Официальное сообщество или поставлен значок, имитирующий галочку, парсер не соберет такое сообщество
Вот как отображаются верифицированные сообщества.
Только сообщества с товарами
- Парсер найдет сообщества, в которых есть товары
- Обычно блок Товары подключен в коммерческих сообществах
Важно: при выдаче результатов в некоторых сообществах можно не увидеть товаров. Это значит, в настройках блок Товары подключен, но сейчас не заполнен.
Теперь рассмотрим общие настройки поиска сообществ.
Общие настройки поиска
Точное вхождение поисковой фразы
- Изначально галочка возле этой опции не стоит. То есть парсер автоматически соберет все словоформы к заданным ключевым словам
- Если поставить галочку, поиск будет проходить по тем словам, которые мы напишем по одному с новой строки во входных данных
Участников От и До
- Показывает размер сообществ
- Можно выбирать как обе границы (От и До), так и одну из них
- Использование настройки полезно, чтобы собрать интересующие по размеру сообщества
Крупные сообщества не всегда подходят для анализа ЦА (особенно развлекательные). Тогда можно ограничить количество участников до 50 000 – 100 000.
В других же проектах, наоборот, бывают интересны именно крупные паблики. А для третьих — самое золото составляют небольшие сообщества. Поэтому выбирать размер лучше сразу исходя из дальнейших задач.
Тип сообщества
Если нет специальной задачи найти определенный тип сообщества, эту опцию можно не выбирать.
Сортировка
- По умолчанию результаты выдаются без какой-либо сортировки
- Если выбираем сортировку, выдача ограничивается 1000 сообществ на ключевое слово
- Значительно срезает выдачу
Геоположение
- Можно выбрать страну и город/регион
- Для России и Украины обязательно выбрать еще и город/регион
Тут важно знать одну особенность. Как только в настройках парсера мы выбираем страну и город/регион, тут же отсекаем Паблики. Даже если мы выберем Тип сообщества Паблик.
Где искать
В этом выпадающем меню можно выбрать базы, в которых будет происходить поиск.
- «Везде» — привычный сбор, который работал в этом инструменте и раньше. То есть ключевые запросы, введенные в инструмент, ищутся не только по нашей собранной базе, но и получаются данные в реальном времени по API от ВК
Важно: ТХ ищет введенный ключ исключительно в названии сообщества, тогда как поиск от ВК находит ключевики в названии, статусе, описании и адресе.
Зачем мы это уточняем? Чтобы пользователи, открывшие результат задачи, не удивлялись, что в названии некоторых сообществ нет введенных фраз.
- «Только ВКонтакте» — это запрос от сервиса по API в реальном времени. Нужно быть готовым к тому, что данных получится немного. Один ключ дает возможность получить максимум по 3к сообществ (по 1к на каждый вид — паблики, группы, мероприятия). Это техническое ограничение, которое невозможно обойти. Плюс нужно понимать, что по этому методу вы получите сообщества, где ключи не только в названии, но и статусе, описании, адресе. Не все администраторы сообществ тщательно следят за наполнением, поэтому в сбор может попасть и мусор, тщательно просматривайте список
- «Только в TargetHunter» — сбор сообществ по внутренней базе ТХ (обновляется раз в 3 – 4 дня). Помните, ключевик найдется только в названиях сообществ, и количество собранных сообществ не будет равно количеству таких же сообществ в ВК
Универсальная рекомендация — пользоваться разными способами поиска, потом сохранить всё в один облачный список (так вы уберете возможные повторы) и работать уже с этим массивом данных дальше.
Вот как может выглядеть поиск сообщества по ключевым фразам в названии.
Подумайте, какие дополнительные настройки для поиска сообществ нужно выставить в вашем проекте.
Ключевая фраза в статусе
Статус у сообществ и пользователей изначально планировался для того, чтобы в нем сообщали важные и актуальные новости. Например, о распродажах или режиме работы в праздничные дни.
Сейчас в статусе частенько можно увидеть ключевые слова, которых нет в названии сообщества.
Посмотрите, по названию этого сообщества вообще невозможно понять, чему оно посвящено. И тут нас спасает статус: мы сразу видим, что это частная школа верховой езды.
Давайте разбираться, как искать такие сообщества.
- Открываем вкладку Поиск > Сообщества > Статус
Поиск сообществ с ключевым словом в статусе происходит аналогично поиску сообщества по названию. Мы также указываем ключевые слова или фразы для поиска (по одному на новой строке).
Если мы уже работали в этой нише, можем знать минус-слова. В этом случае их можно сразу записать по одному с новой строки.
Если мы еще не знакомы с нишей, оставляем это поле пустым. В режиме постфильтрации, когда найдем сообщества, можно пройтись и выставить минус-слова, если они найдутся.
Определяем размер сообщества, исходя из наших дальнейших задач. Помним, что выставляя настройки гео в парсере, мы автоматом потеряем паблики.
Вот как может выглядеть поиск сообщества по ключевым фразам в статусе.
Выбирайте только те настройки, которые максимально помогут найти возможные сообщества.
Ключевая фраза в описании
У сообществ есть раздел Информация, где можно подробно написать, чем вы занимаетесь, режим работы или еще что-то важное. Это еще одно место, где можно найти ключевые слова, идентифицирующие деятельность сообществ.
Посмотрите, в этом примере ни в названии, ни в статусе нет слова Рассказы. Его можно найти только в описании (раздел Информация). Именно отсюда мы узнаем, что это за журнал.
Давайте разберемся, как найти сообщества по этому признаку.
- Для работы идем во вкладку Поиск > Сообщества > Описание
Алгоритм поиска аналогичный:
- Вводим ключевые слова по одному на каждой строке
- Если знаем минус-слова, также вписываем по одному
- Выбираем размер сообщества
- Тип сообщества не выбираем, если нет специальной задачи
- Гео не выставляем
Вот как может выглядеть поиск сообщества по ключевым фразам в описании.
В результате мы нашли сообщества тремя разными способами.
Таким образом мы собрали максимально возможное количество сообществ. Заметим, что поиск по статусу и описанию вообще мало кто проводит, все стандартно ищут по названию. Так что у вас теперь есть преимущество.
Итоги
Что делать с найденными сообществами? Всё зависит от дальнейших задач.
Операции, которые можно сделать:
- Объединить базы с помощью Инструменты > Пересечение баз > Сообщества (выбрать объединение)
- Провести фильтрацию с помощью Инструмент > Фильтр сообществ (чем тщательнее подойти к вопросу фильтрации, тем ценнее получается база)
- Собрать участников с помощью Сбор > Участники
- Собрать админов, чтобы добавить их в исключение, с помощью Сбор > Контакты сообществ (подробнее)
- Сохранить ссылки на сообщества и добавить их в РК в раздел Подписчики сообществ или Активность в сообществах (предварительно проверяем, насколько живое сообщество)
Итак, повторим важные моменты:
- Фразы во всех инструментах вводим по одной на новой строке.
- Верифицированные сообщества отмечаются специальным знаком самим ВК, и именно по нему происходит поиск сообществ, если поставлена галочка возле этой опции.
- При поиске сообществ с товарами в результатах могут быть сообщества, в которых сейчас товаров не видно. Это значит, в настройках сообщества включен блок Товары, но сейчас не заполнен.
- Если в настройках выбрать гео, мы автоматом исключим из выдачи паблики. Даже если в типе сообщества укажем паблики.
- Если выбрать сортировку в настройках поиска, будет выдано 1 000 сообществ на каждое ключевое слово — это связано с техническим ограничением ВК. Поэтому лучше не выбирать сортировку, а собрать как можно больше сообществ и провести глубокий анализ с помощью других инструментов.
- Чтобы собрать большое количество сообществ, используем все три инструмента.
Сегодня вы узнали все нюансы поиска нужных сообществ, теперь ни один конкурент не скроется от вас.
Приступаем к делу и удачной охоты!
Показывайте рекламу
только тем, кто у вас купит
Авторизуйтесь через ВК
Введите код BLOGTH
2 дня сервиса бесплатно + месяц в подарок
при оплате любого тарифа (минимум на 3 месяца)
Источник: targethunter.ru