Как найти запись вк по фото

March 11 2017, 02:20

Поиск похожих изображений в ВК

Какое то время назад я рассказывал о том, как в ВК можно смотреть статистику посещений своей страницы. А сейчас собираюсь рассказать о другой интересной возможности этой соцсети, о которой не все знают: о поиске похожих картинок (копий) и для чего это может понадобиться. Нечто вроде поиска Гугл по картинкам, только реализовано в ВК. У этой функции нет кнопочного интерфейса (нет кнопки «найти эту картинку») поэтому не все о ней знают.

Так вот, чтобы выполнить поиск по картинке, нужно сначала узнать ее идентификатор. Открываем нужную нам картинку и смотрим на адрес в браузере:
https://vk.com/another_photos?z=photo-39441344_456249277%2Fwall-39441344_63534

То что выделено — это и есть идентификатор изображения. Теперь идем на главную страницу с лентой новостей (https://vk.com/feed) и в меню справа выбираем раздел «Фотографии» (https://vk.com/feed?section=photos). Если этого раздела у вас в списке нет, то нужно нажать на знак «+» и добавить его:

Теперь нужно в поле «Поиск по фотографиям» ввести строку следующего вида: copy:photo-39441344_456249277. То есть «copy:» + идентификатор фотографии:

Таким образом, будут найдены все подобные изображения, которые загружали пользователи или сообщества. Если нажать на них, то можно будет посмотреть даты этих картинок и кто их загрузил, то есть узнать, как оно распространялось. Еще, таким же способом, можно узнать является ли фотография пользователя фейковой. Ведь если он сам ее загрузил, то тогда в поиске должна оказаться одна единственная копия, которую и загрузил пользователь. А если он ее у кого-то взял, то это будет сразу видно если количество найденных копий больше одной. Либо, нужно посмотреть, кто раньше всех ее загрузил, что означает, что остальные взяли ее у него.

А если ввести наш поисковый запрос в поле для общего поиска (вверху страницы на синем фоне), то можно найти все посты пользователей, которые поделились этой фотографией у себя на странице.

Поделитесь этой публикацией в соцсетях:

Поиск по фото в ВК 📷 Ищем страницу по фотке Вконтакте

На чтение 5 мин Опубликовано 04.06.2021
Обновлено 13.02.2023

Сегодня социальные сети очень популярны. В 21 веке почти каждый человек зарегистрирован в том или ином сервисе. Часто у людей возникает вопрос – можно ли найти по фотографии другого пользователя. В этой статье мы расскажем про все популярные способы, как осуществить поиск по фото в ВК в 2023 году. Будут рассматриваться все методы, как платные, так и бесплатные.

Содержание статьи

  1. Поиск по фото в ВК
  2. Используем поисковики
  3. Искать в Яндекс (онлайн скрипт)
  4. Получаем прямую ссылку на изображение (обязательный пункт)
  5. Искать в Гугл
  6. Искать Вконтакте
  7. Сервисы
  8. Телеграм Бот
  9. Заключение

Поиск по фото в ВК

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

  1. Использовать возможности поисковых систем (Яндекс и Google)
    Ни для кого ни секрет, что поисковики индексируют изображения со всего интернета. В поисковые базы попадают и картинки из соц. сетей. Поэтому можно использовать их возможности для решения поставленной задачи.
  2. Через сайт Вконтакте
    Выполнить поиск пользователя по фотке можно и через сам Контакт. Однако, на данный момент, этот инструмент достаточно слабо развит, и сильно надеяться на него не стоит.
  3. Используем специализированные сервисы
    Существует много сайтов и ботов, которые могут искать человека по изображениям. Стоит отметить, что большинство из них платные. Однако и результат будет намного качественней. В качестве примера приведем несколько из них.

Используем поисковики

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

Искать в Яндекс (онлайн скрипт)

Введите прямой URL в текстовую область нашего скрипта (как его получить показано ниже) и нажмите на кнопку поиска.

Список литературы
  1. Поиск в ВК
    Найдет точные совпадения и похожие варианты только на сайте https://vk.com. Это поможет Вам определить профиль пользователя, в каких группах он состоит и людей, у которых он есть в друзьях.
  2. По всей сети
    Найдет совпадения на всех ресурсах интернета. Это может помочь определить фейковое фото или нет.

Введите ссылку

Где искать

URL примера для проверки: https://i.ibb.co/n6Pr833/image.png

11.05.2021 V1.1 — Работает с любыми ссылками вида: http//site.com/img.jpg (поддерживаемые форматы jpg,bmp,gif)

Вот что Вы увидите:

результат
Предупреждение

Внимание! Уделите немного времени разделу «Похожие». Нейронная сеть Яндекса хорошо развита. Возможно, что здесь Вы найдете другие фотки нужного человека.

Получаем прямую ссылку на изображение (обязательный пункт)

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

Примечание

Примечание. На данный момент Контакт подгружает все картинки из кэш памяти. Сейчас алгоритмы поисковых машин не умеют с ней работать. Из-за этого необходимо разместить свой файл в сети, в одном из популярных графических форматов (JPG, BMP, GIF и т.д.).

  1. Зайдите в свой профиль VK
  2. Правой кнопкой нажмите на нужную фотку или аватарку. В выпавшем окне выберите пункт «Копировать картинку»
    Выбираем изображение
  3. В браузере откройте главную страницу хостинга изображений — https://ru.imgbb.com/ и нажмите комбинацию клавиш CTRL+V. Также здесь можно загружать картинки с самого ПК или телефона
  4. Нажмите на кнопку «Загрузка»
    Поиск по фото в ВК
  5. Откройте полученный URL-адрес
  6. Кликните по фотке ПКМ и выберите «Копировать URL картинки»
    Копируем урл картинки

Сохраните полученный URL-адрес, например, в «Блокнот». После этого можно приступать самому поиску.

Искать в Гугл

Инструменты Google не такие мощные как у Yandex. Чтобы выполнить поиск надо:

  1. Перейти по адресу https://www.google.ru/imghp?hl=ru и нажать на значок «фотоаппарата»
    Поиск по фото в ВК  через гугл
  2. Укажите ссылку, которую Вы получили выше и нажмите клавишу «ввод»
    Вставляем ссылку

Вы увидите следующий результат:

Поиск по фото в ВК через гугл

Искать Вконтакте

Контакт обладает самым скудным функционалом. Все что Вы можете сделать – найти точные копии фото на сайте. Для этого:

  1. Откройте нужное изображение в ВК
  2. Скопируйте часть ссылки из браузерной строки (начиная от слова photo, и заканчивая первым знаком %)
    Копируем УРЛ
  3. Перейдите в разделы «Новости->Фотографии». В поисковую строку введите команду copy:[полученный_URL] и нажмите на Enter. Поиск по фото в ВК

Сервисы

Телеграм Бот

Лучший вариант для поиска аккаунта в VK по фотографии, который выполняет поиск по своей базе аватарок и фотографий. В качестве результата показывает адреса профилей в Вконтакте. Для этого вам нужно открыть Телеграм Бот по кнопке снизу, нажать на скрепку, и загрузить фотографию со своего телефона, компьютера или ноутбука. Далее вы получите результат в виде аватарки и ссылки на найденную страницу аккаунта в vk.com.

Открыть Телеграм Бот

Заключение

Теперь Вы знаете, как выполнить поиск по фото в ВК. Имея всего лишь одну аватарку и фото человека  в VK можно получить о нем достаточно много разной информации.

Сайт: HTTPS://TVOYAPECARNYA.RU

Python программист. Увлекаюсь с детства компьютерами и созданием сайтов. Закончил НГТУ (Новосибирский Государственный Технический Университет ) по специальности «Инфокоммуникационные технологии и системы связи».

Все мы видели в социальных сетях различные пранки, когда выполняют поиск по фото ВК и различным образом разыгрывают людей. Применение данной технологии ограничивается только фантазией человека. Зная необходимые алгоритмы, реально найти одноклассника, родственника или старого знакомого, а также и совершенно неизвестного человека, имея только его фотографию. Однако возможности системы тоже не безграничны, есть ряд ограничений, которые нужно учитывать. Сейчас мы разберемся со всеми способами распознания человека по фотографии и поиска его страницы в социальной сети Вконтакте.

То, что вам нужно обязательно знать

Важно понимать, что обработка персональных данных без ведома и разрешения человека запрещена на уровне административного кодекса Российской Федерации. По сути, каждый пользователь подобного сервиса принимает на себя ответственность за данное мероприятие. То, что сейчас за это никак не наказывают, может быть лишь временным состоянием и любой человек может подать в суд за подобные действия.

Закончив с условностями, перейдем к другим советам, предостережениям и правилам, которые нужно знать:

  • Вероятность успешного поиска зависит от качества фотографии и ее разрешения.
  • Различные сервисы в основном ищут такие же самые картинки в сети. Иными словами, они не умеют распознавать лицо на изображении и по точкам находить его же в сети. Это уже технологии полицейских в кино. Отсюда вытекает важное правило – такая же самая фотография должна быть добавлена в профиле социальной сети.
  • Важно использовать оригинальное фото, а не снятое на камеру, обрезанное или иным образом измененное. Исключение — на фото много других людей или очень пестрый фон. Вырезать фон можно даже онлайн.
  • Профиль человека открыт, иначе найти фотографию на его странице не получится. Вот все способы, как можно зайти на закрытую страницу ВК.

Способы поиска человека по фотографии

К сожалению, все сервисы не имеют фантастической эффективности. Они могут выполнить поиск только при условии соблюдения перечисленных выше условий. Просто сфотографировать и найти человека по этому фото на улице скорее всего не получится (шансы неплохие, но не больше 5-10%). Зато при соблюдении описанных нами правил, шансы на успех более 95%. По сути у нас есть 3 пути и сейчас мы разберем каждый из них.

Читайте также: Как скрыть друзей в ВК?

Поиск с помощью Telegram ботов

Существует достаточно много ботов в Telegram, которые берут загруженные нами фотографии и ищут их аналоги в социальной сети. Алгоритмы у них разные, поэтому вполне может быть, что какие-то не справятся с задачей, а другие – покажут ссылку на аккаунт в ВК. По этой причине разумно попробовать как минимум несколько из них. Сейчас мы перечислим самые интересные и «умные» среди них.

Лучшие боты Телеграма для поиска по фото человека в ВК:

  • VK FINDFACE BOT. Хорошо справляется со своей задачей и не имеет излишеств. Правда, сервис платный. За одну проверку нужно заплатить 7 рублей.
  • Глаз Бога – мощный сервис по поиску людей. Помимо возможности находить людей по фотографии, помогает подбирать аккаунты по фамилии, номеру машины, номеру телефона. В плане результативности поиска – стоит где-то на уровне с другими сервисами нашего списка. Выдает результат в большинстве случаев (где-то в 80-90%).

Как найти человека в ВК по фото

  • VkUrlBot – функциональный Telegram бот, работающий по аналогии Findface. Работает корректно, очень быстро выдает ссылку на страницу человека, преимущественно правильного аккаунта.
  • J369_bot – сервис, который сканирует базы популярных сервисов tineye, google, bing, yandex и других. Это позволяет повысить точность результатов выдачи. Неплохо справляется со своими задачами, к нему нет особых претензий.

Принцип работы всех Телеграмм ботов всегда идентичен: открываем страницу с ним (можно по ссылкам выше), запускаем его единственной клавишей и проходим процедуру первоначальной настройки. В некоторых случаях просят указать причину поиска человека, в других – оплатить процедуру. Все это делается элементарно. После предварительных действий остается вставить изображение с человеком, где он сфотографирован крупным планом и в хорошем качестве. Через считанные секунды сервис выдаст результат.

Через различные сервисы

Есть немало сайтов, которые выполняют то же самое – используют загруженную фотку и сопоставляют со своими базами данных в поисках максимально точного совпадения. Как и в случае с ботами, вся процедура происходит на стороне сервера. Отличается только способ взаимодействия с ним. Однако в силу отличия алгоритмов сравнения, результаты могут сильно отличаться. По нашему опыту, более точно работают следующие сервисы.

Лучшие сервисы поиска человека в ВК по фото:

  • PimEyes – платный англоязычный сайт по поиску людей в интернете. Сервис обрабатывает входное изображение и ищем похожие по всем популярным соцсетям, а также по сайтам новостей, YouTube и большинству сайтов на WordPress. База Clearview AI, использованная в сервисе, изначально предназначалась для представителей правопорядка, поэтому точность поиска одна из лучших в нише. Обратная сторона – высокая цена, аж 732 рубля за сутки.
  • FindClone – сервис поиска людей, специализирующийся только на социальной системе Вконтакте. Умеет находить похожие картинки с высокой долей точности. Первые 25 поисков предоставляют бесплатно. Чтобы не могли накручивать бесплатные попытке, требуется регистрация по номеру телефона.
  • Search4faces. Один из самых известных сервисов в этой категории, но с одной большой проблемой – базы собирались до 11-2020 года, то есть новых фотографий здесь нет. В остальном нейронные сети и машинное обучение делают свою работу и всего за пару секунд дают ссылку на профили человека в интернете. По крайней мере работает сервис бесплатно, но доля правильных результатов составляет всего 70%.

Как найти человека в ВК по фото

С помощью Google и Яндекс

Качество искусственного интеллекта Google и Яндекс стоит на много уровней выше, чем у сервисов сторонних производителей. Он тоже может находить похожие изображения в интернете, конечно же, не специализируясь конкретно на ВК. Приоритет отдается точным совпадениям. Сервисы хоть и могут подбирать похожие картинки, они практически бесполезны, так как изображения с малой долей вероятности будут относиться к искомому человеку. Если учесть то, что услуга бесплатна, а шансы на успех достаточно большие, вполне разумно использовать поиск людей в ВК по фото через Яндекс и Google.

Как выполнить поиск по картинке в Google и Яндекс:

  1. Открываем соответствующую страницу Google или Yandex.
  2. Нажимаем в поисковой строке на изображение фотоаппарата.
  3. Вставляем ссылку на фотографию или загружаем ее с компьютера.
  4. Ищем картинку, в ссылке у которой есть профиль ВК, и переходим по ней.

Как найти человека в ВК по фото

Читайте также: Как удалить и восстановить аккаунт ВК?

В общем-то это все доступные «обычному смертному» способы найти человека в ВК по фотографии. Есть еще много других сервисов и ботов в Телеграм, но обычно в них нет особой потребности. Если не удалось найти профиль в перечисленных системах, в других он тоже вряд ли отобразится и наоборот. Кстати, еще один вариант поиска человека – по номеру телефона. Возможно, с помощью этой информации результат окажется более точным.

Человек пользуется ноутбуком
Поиск людей в ВК по фото: PxHere

Главная задача социальной сети ВК — общение и поиск людей. Найти человека можно по фото несколькими способами. Воспользуйтесь возможностями поисковых систем Google или Yandex, браузерными расширениями, приложениями или онлайн-сервисами.

Как найти человека по фото «ВКонтакте»? Поиск по фотографии на компьютере и телефоне можно выполнить при помощи поисковых систем Google и Yandex, онлайн-сервисов, встроенной возможности ВК, расширений для браузера, мобильных приложений.

Поисковые системы

Портал WikiHow рекомендует использовать такую методику поиска человека по фото в Google:

  1. Сохраните на компьютере нужное изображение либо ссылку на него. Чтобы сохранить фото на ПК, нажмите по нему правой кнопкой мыши. Выберите «Сохранить изображение как…», укажите путь сохранения.
  2. Откройте Image Google.
  3. В правой части поисковой строки нажмите на иконку в виде фотоаппарата.
  4. Появится два раздела. В одном требуется указать ссылку, а в другом — предоставить фото сервису. Выберите нужный раздел, загрузите ссылку или фото.

Отобразится список результатов поиска. Если изображение было найдено в других размерах, они будут отображаться вверху. Страницы, на которых можно найти изображение, будут отображаться внизу.

Если пользуетесь браузером Google Chrome, можно сделать так:

  1. Откройте в браузере требуемое изображение.
  2. Кликните по нему правой кнопкой мыши.
  3. Выберите «Найти через Google Объектив».

Откроется Google Lens с результатом поиска. В браузере Yandex данный процесс выполняется подобным образом, но на третьем этапе необходимо выбрать «Найти это изображение в ‘Яндексе’».

Поиск на телефоне через Google

Автор портала PCMag Эрик Гриффит объяснил, что поисковиком Google можно пользоваться и на мобильном устройстве, чтобы найти фото. Когда открываете Images Google на мобильном устройстве, значок камеры не отображается в строке поиска. Чтобы получить его, необходимо загрузить настольную версию на мобильное устройство. Она работает в Safari, но лучше всего — в браузерном приложении Chrome (iOS или Android).

В Safari коснитесь значка «aA» в левом верхнем углу и выберите «Запросить веб-сайт рабочего стола». В Chrome коснитесь трехточечной кнопки, прокрутите всплывающее меню вниз и выберите «Запросить рабочий стол». В обоих браузерах загрузится настольная версия Google Images, и появится значок камеры. Затем загрузите фото из галереи мобильного устройства. В некоторых версиях на Android значок камеры сразу есть на главной странице Google.

В зависимости от телефона, Chrome поддерживает такой альтернативный путь поиска изображений:

  1. Найдите в браузере изображение нужного человека и удерживайте на нем палец, пока не появится всплывающее меню.
  2. Выберите «Поиск этого изображения в Google» внизу.

Учтите, что это не сработает в приложении Google или других браузерах (даже в Safari). Работает только в Chrome.

Если по какой-то причине эта методика не работает, выберите «Открыть изображение в новой вкладке». Затем скопируйте URL-адрес, вернитесь на Google Images и вставьте ссылку. При любом методе пользователь получит результаты поиска изображений. Возможно, придется выбрать параметр «Другие размеры» вверху, чтобы увидеть только изображения. Так получите варианты для уточнения запроса, например поиск анимированных GIF-файлов, эквивалентов картинок или поиск по цветовой схеме, используемой в исходном изображении.

Девушка с телефоном

На телефоне можно найти человека по фото при помощи Google: Piqsels

Онлайн-сервисы

Существует большое количество онлайн-сервисов, которые выполняют поиск по фото. Один из самых крупных — TinEye, который работает на всех устройствах. Чтобы им воспользоваться, выполните такие действия:

  1. Подготовьте изображение, которое хотите найти. Для этого сохраните его на компьютере или телефоне либо скопируйте ссылку на изображение.
  2. Перейдите на TinEye.
  3. В зависимости от способа поиска, нажмите на Upload и загрузите фото либо вставьте ссылку в поле и нажмите на значок в виде лупы.
  4. Просмотрите итоги поиска. TinyEye предоставит результаты только для одного и того же изображения, поэтому просмотрите их, чтобы найти источник файла изображения.
  5. Посетите страницы с изображением, чтобы найти дополнительную информацию. Среди них может оказаться страничка ВК.

Существует русский аналог TinyEye, который нацелен исключительно на поиск «Вконтакте», «Одноклассники», TikTok, Instagram, Clubhouse. Это — Search4faces. Благодаря технологии нейронных сетей и машинному обучению сервис в течение нескольких секунд находит нужного человека или очень на него похожего. Результат — ссылка на профиль в социальной сети.

Для ВК алгоритм действий следующий:

  1. Перейдите на сайт.
  2. Нажмите «Загрузить».
  3. Выберите фото с ПК либо загрузите его по ссылке.
  4. При необходимости укажите параметры поиска. Нажмите «Найти».
  5. Получите результаты поиска.

Иногда фотографию следует подготовить, чтобы сервисам было проще искать. Например, есть фото с несколькими людьми, а необходимо найти одного из них. Для этого придется обрезать изображение:

  1. Сохраните фото на компьютер.
  2. Откройте Paint.
  3. Выберите в верхнем меню «Файл», а затем — «Открыть».
  4. Загрузите фото.
  5. На панели инструментов выделите инструмент выделения.
  6. Обведите с его помощью нужного человека.
  7. Нажмите кнопку «Обрезать».
  8. Сохраните через меню «Файл».

Встроенные возможности социальной сети

Соцсеть «ВКонтакте» имеет неплохие встроенные возможности по поиску изображений. Чтобы ими воспользоваться, выполните следующее:

  1. Загрузите искомое изображение в любой открытый альбом, который есть в профиле. Для этого достаточно перетащить фотографию из папки на компьютере на страницу альбома.
  2. Нажмите на загружаемое фото.
  3. В поисковой строке браузера выделите и скопируйте слово «photo» и два прилегающих к нему длинных числа.
  4. Перейдите в раздел «Новости», выберите «Фотографии».
  5. Введите в строку поиска «copy:», а затем вставьте то, что скопировали. Нажмите Enter.
  6. Социальная сеть выдаст те профили, в которых размещена данная фотография.

Vkontakte

Встроенные возможности социальной сети Vkontakte: Flickr

Расширения для браузера

Расширения или дополнение — это небольшие «примочки», которые устанавливаются дополнительно в браузер и выполняют ряд действий. С их помощью можно переводить тексты, делать скриншоты и искать людей по фото. Для этого достаточно перейти в магазин приложений Google и ввести в поисковике «Поиск по фото» или «Images search».

Images Search Options — расширение для поиска по изображению при помощи различных поисковиков, таких как Google, TinEye, SauceNAO, IQDB и других. Это набор настраиваемых параметров контекстного меню. Расширение необходимо установить, после чего появится специальный пункт в контекстном меню после нажатия правой кнопкой мыши.

Мобильные приложения

Существуют специальные приложения для мобильных устройств, которые выполняют поиск по фотографии. Для Android есть приложения Google Объектив, Photo Sherlock. Оба приложения можно найти в App Store. Для телефонов iPhone есть еще Reverse Image Search App.

На примере Google Объектив рассмотрим алгоритм действия для поиска по фото:

  1. Установите и запустите приложение.
  2. Выберите нужное изображение из галереи либо переключитесь в режим камеры.
  3. При выборе второго варианта сфотографируйте фото в режиме «Поиск».
  4. Получите результаты.

В Google Объектив предусмотрены несколько режимов. Можно сфотографировать текст и скопировать его, перевести на другой язык.

Можно ли найти человека по фото в ВК? Да. Сделать это можно на компьютере и телефоне через специальные сервисы и приложения. В ряде случаев поиск не дает результатов, например, если у человека в сети нет профиля или на аватаре нет его фотографии.

Найти человека по фото в ВК несложно. Главное — иметь его фото. Остается только воспользоваться одним из предложенных решений.

Оригинал статьи: https://www.nur.kz/technologies/instructions/1718171-vkontakte-poisk-ludej-po-fotografii/

Ещё один поиск Вк по фото

Время на прочтение
7 мин

Количество просмотров 44K

Я люблю ввязываться в авантюры, и за последний месяц об одной из них я пару раз рассказывал друзьям, что вызывало восторг, поэтому решил поделиться с хабравчанами! Эта история про отважные пет-проекты, мощь опен-сорса и саморазвитие, а также основные технические детали. Надеюсь, вас это вдохновит.

1. Предыстория

В первой половине 2016-го в свет вышел нашумевший FindFace, позволяющий загрузить фото человеческого лица и находить соответствующий профиль Вк. Он вызвал большой общественный резонанс, привёл как к поиску девушек по скрытым фоткам на эскалаторах в метро и к обнародованию порноактрис с неприятными последствиями для их близких, так и к находкам потерянных близких, к нереально быстрому поиску преступников по случайным кадрам с камер, прям как в американских фильмах, только наяву.

В то время мне об этом сервисе говорили и ленты новостей, и друзья, я отвечал «ну да, прикольно», и только. Но спустя пару лет, в начале октябре 2018 на каком-то айтишном форуме я захотел связаться с одним пользователем по специфическому вопросу, вот только он туда уже давно не заходил. Зато там было его хорошее фото, и тут-то я вспомнил про крутой сервис! Побежал на их сайт и разочаровался – в сентябре 2018, буквально за месяц, они перестали предоставлять свои услуги физ.лицам, и бесплатно, и даже за деньги, перейдя в сегмент b2b и b2g. Оно и понятно, пиар уже сработал, а этических вопросов так возникает куда меньше. Но меня, законопослушного гражданина, это огорчило. И не только меня: фан-группы ФайндФейса пестрили сообщениями о том, что люди готовы заплатить в 10 раз больше, лишь бы им помогли найти нужного человека.

Я стал искать аналоги, но они все были либо точным поиском, но по крайне ограниченной выборке вроде нескольких сотен знаменитостей из Википедии, либо обширным, но почти бесполезным по точности поиском через Гугл/Яндекс.

Пару рабочих дней я размышлял, что же сложного в создании такого сервиса, который бы и точно искал людей, и по всему Вк? Решил, что ничего, ведь у меня тогда уже были базовые познания в data science, разработке и администрировании. Поэтому в пятницу, приехав с работы домой, я взялся за дело. За вечер я накидал скрипт, который парсит профили Вк, находит фото, индексирует по ним лица и сохраняет в БД. Потом просидел ещё пару суток почти без сна, заставил это дело безостановочно работать на своём сервере. Началась новая трудовая неделя, я был очень уставший, но ещё больше довольный и полный энтузиазма! Ведь мой скрипт медленно, но неумолимо обходил весь Вк.

2. Техническое устройство

2.1. Индексирование

Как вы считаете, что происходит после того, как вы отправляете запрос в любую крупную поисковую систему? Не важно, поиск текста в Яндексе, Google или поиск лиц в FindFace или моём сервисе. Многие, особенно не-айтишники, с трудном представляют внутренние механики технических процессов, а они бывают нетривиальны даже казалось бы в простых задачах. В случае поисковых систем магия заключается в том, что при получении запроса они не начинают обегать все страницы в интернете, ища там ваш текст, или весь Вк, сравнивая вашу фотку со всеми подряд, – это бы занимало астрономические объёмы времени. Вместо этого, поисковые системы сперва индексируют нужные данные. В случае текста (и подобных тексту данных вроде ДНК) в ближайшем приближении могут использоваться хэш-таблицы или префиксные деревья. В случае фоток тоже нужны индексы, которые сильно сократят время поиска. Для этого я использовал библиотеку face_recognition, которая позволяет преобразовать фото лица, если правильно помню, в 128-мерный вектор признаков со значениями от -1 до 1 (далее буду называть его просто хэш). Для поиска человека по фото, нам нужно просто пробежаться по всем фото из коллекции, считая евклидово расстояние между векторами-хэшами из запроса и набора – подобный пример, реализованный на Питоне, доступен на сайте упомянутой библиотеки. Да, такая операция поиска тоже не дешёвая, но об этом позже.

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

Конечно, не только лимиты АПИ повышать надо, но и объёмы CPU. Изначально я развернул скрипт на маленьком VPS, который создавался для простого личного сайта. В подмогу ему, я взял ещё один VPS, в несколько раз мощнее. Потом я решил, что и этого мало, взял ещё и целый выделенный сервер, который сильнее моего собственного рабочего компьютера :D Не энтерпрайз-левел, но производительность стала меня устраивать, хотя расходы и выросли до 15 тысяч руб/месяц, что для меня тогда было весьма ощутимой тратой.

2.2. Подобие архитектуры и DevOps’а

Если у вас есть опыт в бэкэнд разработке, то сразу встаёт вопрос, как я заставил несколько серверов работать в тандеме, а не независимо, дублируя одну и ту же работу? На самом деле, решение классическое: один микросервис брал на себя роль ведущего, мастера, хранил состояние всей системы, и выдавал задания объёмом в тысячу профилей Вк воркерам, которые быстрее или медленнее их индексировали, а результаты, в том числе промежуточные, возвращали мастеру; если же мастер за определённый промежуток времени не получал ответа от воркера, он давал это задание другому, с учётом промежуточного прогресса.

Кстати, воркеры работали в несколько потоков. Да, Питон, благодаря Global Interpreter Lock, не умеет в полный параллелизм, но много времени уходило на выгрузку фоток, а IO-операции хорошо параллелятся. Вдобавок, это позволило легко назначить каждому потоку свой токен доступа и гибко настраивать загруженность каждой машины.

Для автоматизации настройки окружения, токенов и т.п были написаны скрипты на Питоне, которые подключались к целевой машине по SSH и ставили всё что нужно. Позже я узнал, что у меня костыльный велосипед, есть качественные решения, но всё равно было интересно посмотреть подноготные детали. Из прикольного, пришлось также разобраться, что есть разные ВМ и средства виртуализации, что некоторое ПО не работает в определённых конфигурациях, благодаря чему виртуалки на Xen и OpenVZ с казалось бы одинаковыми ресурсами могут отличаться в цене на 40%.

2.3. Поиск

Помимо ролей мастера и воркера, есть роль поискового микросервиса. Проиндексированные фото Вк и айдишники их профилей сохраняются в БД, точнее, MySQL v5.7 – и алгоритм поиска я переписал с Python на SQL, что позволило сильно ускорить вычисления и выйти на больший масштаб. Но с ростом данных этого всё равно было очень мало, я думал над оптимизациями, старался переиспользовать свой опыт big data аналитики с работы, экспериментировал с разными структурами запросов и генерацией SQL-запросов Питоном, это позволило ускорить вычисления в несколько раз, что мило, но всё равно мало.

Потом я решил сделать поиск двух-этапным: преобразовывать хэши-дробные-векторы в небольшой массив байт, сохраняя каждый признак в два бита: v>0.1 и v<-0.1 (здесь), затем сравнивая число совпавших бит такого хэша у целевого лица и всех лиц в БД, а потом фильтруя записи в БД по какому-то трешхолду, отправляя на более точное и медленное сравнение только потенциальных кандидатов. Пришлось повозиться и переехать на MySQL v8, т.к в 5.7 бинарных операций нет. Но это позволило ускорить поиск ещё почти в 30 раз – а это уже клёво ^_^

Вообще, поиск можно было бы улучшать и дальше – возможно подобрав более эффективные коэффициенты в операции выше, или переделав этот хэш, ещё было бы круто добавить параллелизм, которого в MySQL из коробки нет, партицирование, шардирование, и искать многопоточно; для этого в планах был переезд на PostgreSQL.

2.4. Другие механики

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

Ускорять время поиска можно не только ускорением самого поискового алгоритма, но и снижением выборки, например, ища профили только среди участников каких-то групп Вк. Ясное дело, здесь встаёт вопрос ограничения размера этой выборки, т.к делать запрос с «ISIN (десятки тысяч айдишников)» такое себе, а вот на паре сотен и даже тысяч работает в разы быстрее, чем полный проход БД.

Помимо прочего, я немного помешан на математике, множествах графах, а соц.сети – это прекрасные данные и множеств, и графов! Я подумал, что можно двигаться в этом направлении, позволяя задавать сложные запросы с И-ИЛИ-деревьями. Притом, искать можно не только по фото, но и по ник-неймам или ссылкам на профили в других соц.сетях – к сожалению, поисковики интернета и Вк эту инфу не очень индексируют, и я попробовал делать это сам.

Если идти ещё дальше, то можно индексировать не только Вк, но и ВотсАп, Тг перебрав все русские номера, возможно частично FB, Twi, Ig. Но это уже совсем будущее, я решил двигаться в сторону скорейшей апробации и монетизации того, что есть уже.

3. Заключение

3.2. Happy ли end?

Перед разработкой ЛК, интеграции платежей и т.п декора, я решил больше разобраться в общественных настроениях, т.к некоторые мои знакомые выражали сомнения, что им было быы приятно пользоваться, а ещё серьёзнее – быть доступными в таком сервисе. Помимо этого, примерно тогда же Вк ввёл закрытые профили, чтобы переживающее о своей безопасности люди могли спокойно скрываться, и анализируя статистику своих воркеров я видел, что число таких профилей всё растёт.

Я написал в тех поддержку Вк (тогда они ещё отвечали, ахах), аккуратно представился студентом, что хочу проводить социологические исследования сканируя большие объёмы данных Вк, в т.ч фото, ФИО и описание. Что на самом деле было правдой, с учётом моего интереса к аналитике и психологии. Они ответили, что ради статистики и небольших выборок в целом не против, но точно против какой-либо идентификации. А ещё «порадовали» тем, что будут и палки в колёса АПИ вставлять таким сервисам, и участвовать в разработке/внедрению законов, регулирующих эту деятельность. А недавно, уже в наше время, вышел законопроект, запрещающий автоматизированную обработку данных с сайтов, что по сути полностью блокирует подобные сервисы с парсингом.

В связи с этим, я принял решение о закрытии проекта, хоть это и было печально: в феврале 2019 у меня уже было проиндексировано 25% всего Вк в гигабайтах БД, притом не за бесплатно. Но у меня уже тогда был опыт различных проектов, поэтому я не жил розовыми мечтами об успешном успехе, а старался извлечь другую пользу и просто фан (:

Кстати, только в процессе написания этой статьи я понял, что принявшись за эту работу, я совсем забыл про исходный мотив, про того человека с какого-то сайта и свой вопрос к нему xD

Спустя какое-то время после завершения описанной истории, я решил опубликовать исходники, но т.к там в истории коммитов засветились токены, то перезалил в новый репозиторий. Однако код действительно такой, что мне самому туда страшно заглядывать, тогда я мало что понимал в организации проекта, не слышал про Ansible, Docker.

3.2. Польза

Здесь, как и в других своих пет-проектах и стартапах, я набрался много опыта:

  • Разобрался с многопоточностью в Питоне.

  • Покопался в специфических вопросах оптимизации MySQL запросов.

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

  • Освоил работу из кода с SSH для настройки окружения, а в будущем понял, насколько чудесен Ansible, который это сильно упрощает.

  • Разработал микросервисную архитектуру из клея и палок, что затем позволило легко понять концепции Kubernetes.

И всё это мне очень пригодилось в последующих работах и проектах.

3.3. Мораль

Выводы каждый сделает свои, но главное – не бойтесь пробовать, учиться и искать себя! Надеюсь, вам было интересно.

Понравилась статья? Поделить с друзьями:
  • Как найти периметр прямоугольника по клеточкам
  • Как составить формулу цели
  • Как найти в сложном предложении придаточную часть
  • Как найти хорошую вахту в москве
  • Как на штангенциркуле найти доли миллиметра