Вход Регистрация

Парсинг

Скрапинг экрана: принцип работы и возможности использования

Скринскраппинг - это метод, с помощью которого программа извлекает данные из экрана, выводимого другой программой. Чтобы узнать больше об этой технике, прочитайте нашу статью.

Команда Froxy 22 фев 2024 5 мин
Скрапинг экрана: принцип работы и возможности использования

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

Бизнес часто использует для решения своих задач методы автоматического сбора данных: для мониторинга конкурентов, для анализа стратегий и ассортимента, для проверки работы контрагентов и т.п. Почти всегда используется анализ текстовой информации на web-страницах. Но информация может храниться не всегда только в тексте. Это могут быть изображения, видео- и аудиозаписи, более сложные профессиональные форматы документов (3D-модели, выгрузки из CAD-систем и пр.). Как быть с ними?

По крайней мере то, что можно «увидеть», уже сегодня вполне точно можно и распарсить. Обо всех тонкостях и нюансах этого процесса ниже.

Что такое парсинг экрана (скрин-скрейпинг)?

Что такое парсинг экрана (скрин-скрейпинг)?

Парсинг экрана (англ. screen scraping) – это процесс извлечения данных с изображений, скринов и экранов пользователей. Такой метод извлечения данных применяется тогда, когда невозможно использование более простых и дешёвых подходов, например, парсинг текста или HTML-структуры.

Отдельный подробный материал о том, что такое парсинг, в чём его преимущества и недостатки.

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

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

Для чего используется скрапинг скринов?

Почти всегда парсинг трудится на нужды бизнеса. И парсинг скринов – не исключение. Наиболее вероятными ситуациями применения парсеров экранов можно назвать следующие:

  • Исследование рынка и конкурентов. Сравнение разделов личных кабинетов, UI-подходы и стратегии (юзабилити), типовые надписи, правила использования и т.п. Часть работы можно выполнить вручную. Но если конкурентов много, то объём обрабатываемой информации возрастает в разы. Без систем автоматизации и распознавания скринов уже не обойтись.
  • Мониторинг цен. Скрин-скрейперы помогут в тех случаях, когда стандартный парсер не может получить доступ к исходному коду web-страницы или к данным внутри мобильного приложения (интернет-магазина). Плюс, может применяться параллельное сравнение предложений в web-версии магазина и в мобильном приложении (самые крупные игроки используют разные подходы к формированию цен на мобильных и на десктопах).
  • Мониторинг отзывов и формирование репутации (PR). Скрин-скрейперы справляются даже с очень сложными ситуациями по сбору реальных отзывов на разных площадках – в социальных сетях, в мессенджерах, на профильных сайтах, на досках объявлений и т.п. Напомним, что сейчас для выражения эмоций и для обозначения своей реакции используется не только текст, но и графика (смайлы, эмотиконы, стикеры и пр.).
  • Проверка рекламных объявлений. Бизнес может размещать свою рекламу в разных местах. Но если верить партнёрам на «честное слово», то быстро прогоришь. Логично хотя бы точечно проверять выполнение условий договоров. Опять же, текстовые парсеры смогут проверить только код объявления, а не то, как оно в реальности выглядит на сайте или внутри мобильного приложения. А для скрин-скрейперов – это не проблема.
  • Анализ UX (пользовательского опыта). Как понять, нравится ли клиенту интерфейс вашего личного кабинета или нет? Насколько он получился удобным, есть ли ошибки? Кто-то применяет специальные опросы, кто-то задействует метрики, но самый надёжный способ проверки любых интерфейсов – скриншоты. Парсер поможет автоматизировать обработку скринов и разложить их по категориям.

Могут быть и более сложные ситуации применения скрапинга экранов.

Пару слов про безопасность и конфиденциальность

Обратите внимание! Многие разработчики программ, особенно банковских сервисов, государственных цифровых услуг и т.п., стараются защитить информацию внутри своих продуктов.

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

По этой причине нужно быть предельно осторожными. Риск взлома и потери денег существенно возрастает. Этот факт важно знать и учитывать.

В руках злоумышленника парсер скринов превращается в мощное оружие.

Как работают парсеры экрана

Как работают парсеры экрана

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

Небольшое исключение – работа с динамическим контентом, когда конечный HTML-документ формируется за счёт JavaScript-скриптов. В этом случае применяются так называемые «безголовые браузеры». Они получают URL-адрес, который нужно посетить, загружают страницу, обсчитывают все скрипты и только потом возвращают парсеру итоговый HTML-документ. Работа всё равно ведётся на уровне текста.

Но как парсить экран?

Человек обычно видит только конечный результат работы большинства программ. Вся работа пользователя происходит в так называемом графическом интерфейсе (GUI или Graphical user interface).

При этом программы всегда работают с данными, а не с интерфейсами. А так как парсеры – это тоже программы, то им на вход нужно подавать информацию в том виде, в котором они способны их «переварить».

В случае со скрин-скрейперами читаемым форматом будет изображение, например, скриншот экрана мобильного приложения, или PDF-файл, его можно создать в headless-браузере по API.

Далее в ход пускается средство распознавания текста – OCR (Optical character recognition, дословно «Оптическое распознавание символов») или компьютерное зрение (с применением специальных нейросетей).

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

Компьютерное зрение устроено чуть сложнее. Изображение символов пропускается через специальную нейросеть. Обычно одна нейросеть настроена на работу с одним языком. Определённые нейроны натренированы обнаруживать только какой-то конкретный символ. В итоге нейросеть выдаёт сигнал того нейрона, который распознал «свою» букву точнее, чем все остальные.

Преимущество нейросети в том, что она не выдаёт разрозненные буквы и символы из разных алфавитов. Она сразу формирует слова. Этот эффект достигается уже за счёт дополнительных слоёв нейросети, которые натренированы искать слова, а не символы. Даже если один из символов будет распознан неверно на первом слое, его «скорректируют» на последующих слоях.

Как работают парсеры экрана

В итоге схема скрапинга экранов работает следующим образом:

  1. Программа-парсер делает скриншот экрана пользователя.
  2. Изображение подаётся в модуль распознавания текста (на основе OCR или на основе нейросети).
  3. Модуль возвращает текст, который смог обнаружить на скрине.
  4. Работает дальнейшая логика парсера (данные заносятся в таблицу или производятся другие действия, тут всё будет зависеть от целей и задач парсера).
  5. Готово.

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

Разница между парсингом экрана и парсингом веб-страниц

Разница между парсингом экрана и парсингом веб-страниц

По сути, мы уже частично ответили на вопрос выше:

  • Парсинг web-страниц работает преимущественно с текстом HTML-документов.
  • А парсинг экранов работает с изображениями и скриншотами. В первую очередь на изображениях ищется текст, но определённые нейросети позволяют извлекать и многие другие данные, например, текстовые описания объектов.

Основное отличие – наличие модуля для распознавания текста (OCR) или компьютерного зрения (натренированной нейросети).

Из-за этого модуля вытекают специфические преимущества и недостатки скрейперов экранов.

Плюсы скрин-скрейпинга (по сравнению с web-парсингом):

  • Скрин-парсер может находить данные там, куда никак и никогда не получит доступ обычный текстовый парсер. Например, внутри мобильных приложений.
  • Парсер не боится специальных ловушек и закладок в коде, предназначенных для выявления ботов и скриптов автоматизации. Он фактически видит то, что должен видеть обычный пользователь.
  • Программа параллельно может решать ряд других специфических задач – анализ пользовательского опыта, обнаружение и описание визуальных объектов, и т.п.
  • Так как визуализация web-страниц и преобразование их в изображения реализуется обычно через headless-браузеры, то расходы на прокси будут минимальными (безголовые браузеры умеют эмулировать поведение пользователей, поэтому риск срабатывания систем защиты от ботов будет минимальным).

На всякий случай материал о том, как парсить так, чтобы не получать никаких блокировок.

Минусы скрин-скрейпинга (по сравнению с web-парсингом):

  • Отрисовка страницы сайта происходит в обычном или headless-браузере. А он потребляет значительный объём ресурсов, если сравнивать с классическим текстовым парсером. Каждый новый поток будет требовать новый экземпляр браузера, соответственно, потребление ресурсов будет расти лавинообразно.
  • Если скрины делаются с мобильных приложений, то для их создания понадобятся специальные разрешения на уровне мобильной операционной системы. Естественно, работа каждого экземпляра приложения – это тоже вычислительные ресурсы. Чтобы запустить несколько потоков параллельно, потребуются специальные технологии виртуализации.
  • Любое ПО для распознавания текстов потребляет много ресурсов ПК. Чем больше текста на скрине, тем дольше будет длиться процедура распознавания.
  • Нейросети, реализующие алгоритмы компьютерного зрения, наиболее ресурсоёмкие. Для их работы потребуются специальные конфигурации с производительными графическими процессорами.
  • Если процесс распознавания будет строиться на базе готовых удалённых сервисов и API (например, на базе Chat GPT), то потребуется оплата запросов. Они покупаются пакетами или по подписке.
  • Создание парсера, способного «читать» скрины, будет заметно сложнее, чем создание простого текстового парсера.
  • Данные с изображений не имеют разметки, как HTML-документы. Поэтому вычленить на распознанном изображении только нужные участки текста будет достаточно сложно.

Выводы и рекомендации

Выводы и рекомендации

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

Только с помощью прокси можно обойти защиту по количеству одновременных подключений и тем самым ускорить сбор большого объёма данных.

Лучшие мобильные и резидентные прокси можно купить у нас. Froxy – это сервис №1 по качеству и стабильности. Отличный охват – 8,5 млн. IP, 200+ стран, точный таргетинг (до города и провайдера связи). До 1000 параллельных портов на аккаунт. Оперативная ротация. Оплачивается только трафик, а не количество прокси.

Получайте уведомления о новых функциях и обновлениях Froxy

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

Статьи по Теме

Зарабатывайте с новой партнерской программой Froxy

Новости

Зарабатывайте с новой партнерской программой Froxy

Новая партнерская программа Froxy. Присоединяйтесь к нашей партнерской программе и зарабатывайте до 25% от покупок ваших рефералов.

Команда Froxy 7 фев 2023 1 мин
Как использовать Wget с прокси-сервером

Прокси

Как использовать Wget с прокси-сервером

Wget - это свободная консольная программа для загрузки файлов по сети. Узнайте подробнее о возможностях Wget и как настроить Wget с прокси-сервером в...

Команда Froxy 11 апр 2024 5 мин