Нейросети и искусственный интеллект сейчас у всех на слуху. Многие эксперты говорят о том, что эта технология – просто игрушка. Практическое применение ИИ видится им нерентабельным. Но мы категорически не согласны. Ниже мы развеем мифы и расскажем о вполне реальном и финансово обоснованном применении технологий искусственного интеллекта – о компьютерном зрении в связке с парсингом экранов (скринов, изображений и т.п.).
Бизнес часто использует для решения своих задач методы автоматического сбора данных: для мониторинга конкурентов, для анализа стратегий и ассортимента, для проверки работы контрагентов и т.п. Почти всегда используется анализ текстовой информации на web-страницах. Но информация может храниться не всегда только в тексте. Это могут быть изображения, видео- и аудиозаписи, более сложные профессиональные форматы документов (3D-модели, выгрузки из CAD-систем и пр.). Как быть с ними?
По крайней мере то, что можно «увидеть», уже сегодня вполне точно можно и распарсить. Обо всех тонкостях и нюансах этого процесса ниже.
Парсинг экрана (англ. screen scraping) – это процесс извлечения данных с изображений, скринов и экранов пользователей. Такой метод извлечения данных применяется тогда, когда невозможно использование более простых и дешёвых подходов, например, парсинг текста или HTML-структуры.
Отдельный подробный материал о том, что такое парсинг, в чём его преимущества и недостатки.
Часто случается так, что визуальные данные тоже содержат текст и надписи, которые можно считать, если ты человек и обладаешь зрением. Но для программ-парсеров, которые не могут получить данные к исходному коду страницы, например, как в случае с экраном мобильного приложения, задача становится непосильной.
И как раз в этом случае на помощь приходят технологии компьютерного зрения и распознавания изображений. Они могут заменить человеческие глаза и «увидеть», какая конкретно информация размещена на экране (например, на скриншоте или просто на фото).
Почти всегда парсинг трудится на нужды бизнеса. И парсинг скринов – не исключение. Наиболее вероятными ситуациями применения парсеров экранов можно назвать следующие:
Могут быть и более сложные ситуации применения скрапинга экранов.
Обратите внимание! Многие разработчики программ, особенно банковских сервисов, государственных цифровых услуг и т.п., стараются защитить информацию внутри своих продуктов.
Но ввиду того, что скрин-скреперы могут «видеть» происходящее на экране почти как обычные пользователи, они могут раскрывать конфиденциальную информацию и чувствительные данные, намеренно или непреднамеренно.
По этой причине нужно быть предельно осторожными. Риск взлома и потери денег существенно возрастает. Этот факт важно знать и учитывать.
В руках злоумышленника парсер скринов превращается в мощное оружие.
Когда речь идёт об анализе простого текста или web-страниц (которые фактически тоже представляют собой текстовые документы), то работа парсера ясна и понятна. Программа получает тело документа, ищет в тексте нужные элементы разметки или совпадения с заданной маской, а затем извлекает данные внутри элемента. Всё, данные можно заносить в таблицу и выгружать в нужном формате.
Небольшое исключение – работа с динамическим контентом, когда конечный HTML-документ формируется за счёт JavaScript-скриптов. В этом случае применяются так называемые «безголовые браузеры». Они получают URL-адрес, который нужно посетить, загружают страницу, обсчитывают все скрипты и только потом возвращают парсеру итоговый HTML-документ. Работа всё равно ведётся на уровне текста.
Но как парсить экран?
Человек обычно видит только конечный результат работы большинства программ. Вся работа пользователя происходит в так называемом графическом интерфейсе (GUI или Graphical user interface).
При этом программы всегда работают с данными, а не с интерфейсами. А так как парсеры – это тоже программы, то им на вход нужно подавать информацию в том виде, в котором они способны их «переварить».
В случае со скрин-скрейперами читаемым форматом будет изображение, например, скриншот экрана мобильного приложения, или PDF-файл, его можно создать в headless-браузере по API.
Далее в ход пускается средство распознавания текста – OCR (Optical character recognition, дословно «Оптическое распознавание символов») или компьютерное зрение (с применением специальных нейросетей).
OCR-программы работают почти как нейросети. У них в базе есть набор образов всех известных им букв, цифр и других знаков или символов. Исходное изображение нарезается на подходящие куски (квадраты или прямоугольники с контрастными элементами в центре), а затем каждая область символа «сжимается» до условного «стандарта» и сравнивается с базой эталонов (то есть с каждым отдельно взятым символом в базе). В итоге программа выберет тот символ из базы, который будет совпадать с эталоном больше, чем все остальные.
Компьютерное зрение устроено чуть сложнее. Изображение символов пропускается через специальную нейросеть. Обычно одна нейросеть настроена на работу с одним языком. Определённые нейроны натренированы обнаруживать только какой-то конкретный символ. В итоге нейросеть выдаёт сигнал того нейрона, который распознал «свою» букву точнее, чем все остальные.
Преимущество нейросети в том, что она не выдаёт разрозненные буквы и символы из разных алфавитов. Она сразу формирует слова. Этот эффект достигается уже за счёт дополнительных слоёв нейросети, которые натренированы искать слова, а не символы. Даже если один из символов будет распознан неверно на первом слое, его «скорректируют» на последующих слоях.
В итоге схема скрапинга экранов работает следующим образом:
Вместо нейросетей, применяемых для распознавания текста, можно использовать решения, способные распознавать и описывать объекты на картинке. В этом случае модуль распознавания будет возвращать в парсер не только текст, найденный на экране, но и описания объектов (вида «коричневый стул» или «шарф торговой марки N» и т.п.).
По сути, мы уже частично ответили на вопрос выше:
Основное отличие – наличие модуля для распознавания текста (OCR) или компьютерного зрения (натренированной нейросети).
Из-за этого модуля вытекают специфические преимущества и недостатки скрейперов экранов.
Плюсы скрин-скрейпинга (по сравнению с web-парсингом):
На всякий случай материал о том, как парсить так, чтобы не получать никаких блокировок.
Минусы скрин-скрейпинга (по сравнению с web-парсингом):
Каким бы продвинутым ни был ваш парсер, даже если он умеет распознавать скрины и эмулировать поведение пользователей, вам всё равно потребуются качественные прокси.
Только с помощью прокси можно обойти защиту по количеству одновременных подключений и тем самым ускорить сбор большого объёма данных.
Лучшие мобильные и резидентные прокси можно купить у нас. Froxy – это сервис №1 по качеству и стабильности. Отличный охват – 8,5 млн. IP, 200+ стран, точный таргетинг (до города и провайдера связи). До 1000 параллельных портов на аккаунт. Оперативная ротация. Оплачивается только трафик, а не количество прокси.