Извлечение данных — это метод, при котором компьютерная программа извлекает данные из понятных человеку выходных данных, поступающих от другой программы.
Обычно передача данных между программами осуществляется с использованием структур данных , подходящих для автоматизированной обработки компьютерами , а не людьми. Такие форматы и протоколы обмена обычно жестко структурированы, хорошо документированы, легко анализируются и минимизируют неоднозначность. Очень часто эти передачи вообще не читаются человеком.
Таким образом, ключевым элементом, отличающим скрапинг данных от обычного синтаксического анализа , является то, что скрапинговый вывод предназначен для отображения конечному пользователю , а не в качестве ввода в другую программу. Поэтому он обычно не документируется и не структурируется для удобного синтаксического анализа. Скрапинг данных часто подразумевает игнорирование двоичных данных (обычно изображений или мультимедийных данных), форматирования отображения , избыточных меток, лишних комментариев и другой информации, которая либо не имеет значения, либо препятствует автоматизированной обработке.
Скрапинг данных чаще всего выполняется либо для интерфейса с устаревшей системой , которая не имеет другого механизма, совместимого с текущим оборудованием , либо для интерфейса со сторонней системой, которая не предоставляет более удобный API . Во втором случае оператор сторонней системы часто будет считать скрапинг экрана нежелательным из-за таких причин, как повышенная нагрузка на систему , потеря дохода от рекламы или потеря контроля над информационным содержанием.
Сбор данных обычно считается ad hoc , неэлегантным методом, часто используемым только как «последнее средство», когда нет других механизмов обмена данными. Помимо более высоких накладных расходов на программирование и обработку, выходные данные, предназначенные для потребления человеком, часто меняют структуру. Люди могут легко с этим справиться, но компьютерная программа даст сбой. В зависимости от качества и степени логики обработки ошибок , присутствующей в компьютере , этот сбой может привести к сообщениям об ошибках, поврежденному выводу или даже сбоям программы .
Однако в настоящее время настройка конвейера сбора данных не представляет сложности и требует минимальных усилий по программированию для удовлетворения практических потребностей (особенно при интеграции биомедицинских данных). [1]
Хотя использование физических « немых терминалов » IBM 3270 постепенно сокращается, поскольку все больше и больше приложений для мэйнфреймов приобретают веб- интерфейсы, некоторые веб-приложения просто продолжают использовать технику захвата экрана для захвата старых экранов и передачи данных на современные интерфейсы. [2]
Скрапинг экрана обычно ассоциируется с программным сбором визуальных данных из источника, а не с анализом данных, как при веб-скрапинге. Первоначально скрапинг экрана относился к практике чтения текстовых данных с экрана компьютерного терминала . Обычно это делалось путем чтения памяти терминала через его вспомогательный порт или путем подключения выходного порта терминала одной компьютерной системы к входному порту другой. Термин скрапинг экрана также обычно используется для обозначения двунаправленного обмена данными. Это могут быть простые случаи, когда управляющая программа перемещается по пользовательскому интерфейсу, или более сложные сценарии, когда управляющая программа вводит данные в интерфейс, предназначенный для использования человеком.
В качестве конкретного примера классического скрапера рассмотрим гипотетическую устаревшую систему, датируемую 1960-ми годами — зарей компьютерной обработки данных . Интерфейсы «компьютер-пользователь» той эпохи часто представляли собой просто текстовые немые терминалы , которые были не намного больше, чем виртуальные телетайпы (такие системы все еще используются сегодня [обновлять]по разным причинам). Желание связать такую систему с более современными системами является обычным. Для надежного решения часто потребуются вещи, которые больше не доступны, такие как исходный код , системная документация , API или программисты с опытом работы с 50-летней компьютерной системой. В таких случаях единственным возможным решением может быть написание скрапера, который «притворяется» пользователем за терминалом. Скребок может подключаться к устаревшей системе через Telnet , эмулировать нажатия клавиш, необходимые для навигации по старому пользовательскому интерфейсу, обрабатывать полученный вывод на дисплей, извлекать нужные данные и передавать их в современную систему. Сложную и отказоустойчивую реализацию такого рода, построенную на платформе, обеспечивающей управление и контроль, необходимые крупному предприятию, например, контроль изменений, безопасность, управление пользователями, защиту данных, операционный аудит, балансировку нагрузки, управление очередями и т. д., можно назвать примером программного обеспечения для автоматизации роботизированных процессов , называемого RPA или RPAAI для самоуправляемой RPA 2.0 на основе искусственного интеллекта .
В 1980-х годах поставщики финансовых данных, такие как Reuters , Telerate и Quotron, отображали данные в формате 24×80, предназначенном для чтения человеком. Пользователи этих данных, в частности инвестиционные банки , писали приложения для захвата и преобразования этих символьных данных в числовые данные для включения в расчеты для принятия торговых решений без повторного ввода данных. Распространенным термином для этой практики, особенно в Соединенном Королевстве , было уничтожение страниц , поскольку результаты можно было представить, как если бы они прошли через измельчитель бумаг . Внутри Reuters для этого процесса преобразования использовался термин «логизированный», запущенный с помощью сложной компьютерной системы на VAX/VMS под названием Logicizer. [3]
Более современные методы экранного скрейпинга включают захват растровых данных с экрана и их прогон через OCR- движок или, для некоторых специализированных автоматизированных систем тестирования, сопоставление растровых данных экрана с ожидаемыми результатами. [4] Это можно объединить в случае приложений с графическим интерфейсом пользователя с запросом графических элементов управления путем программного получения ссылок на их базовые программные объекты . Последовательность экранов автоматически захватывается и преобразуется в базу данных.
Еще одной современной адаптацией этих методов является использование вместо последовательности экранов в качестве входных данных набора изображений или PDF-файлов, поэтому имеются некоторые совпадения с общими методами «извлечения данных из документов» и анализа отчетов.
Существует множество инструментов, которые можно использовать для сканирования экрана. [5]
Веб-страницы создаются с использованием текстовых языков разметки ( HTML и XHTML ) и часто содержат множество полезных данных в текстовой форме. Однако большинство веб-страниц предназначены для конечных пользователей , а не для простоты автоматизированного использования. Из-за этого были созданы наборы инструментов, которые извлекают веб-контент. Веб-скрейпер — это API или инструмент для извлечения данных с веб-сайта. [6] Такие компании, как Amazon AWS и Google, предоставляют инструменты, услуги и общедоступные данные для веб-скрейпинга, доступные бесплатно для конечных пользователей. Новые формы веб-скрейпинга включают прослушивание потоков данных с веб-серверов. Например, JSON обычно используется в качестве транспортного механизма хранения между клиентом и веб-сервером. Веб-скрейпер использует URL-адрес веб-сайта для извлечения данных и сохраняет эти данные для последующего анализа. Этот метод веб-скрейпинга позволяет извлекать данные эффективным и точным образом. [7]
Недавно компании разработали системы веб-скрейпинга, которые используют методы анализа DOM, компьютерного зрения и обработки естественного языка для имитации человеческой обработки, которая происходит при просмотре веб-страницы, для автоматического извлечения полезной информации. [8] [9]
Крупные веб-сайты обычно используют защитные алгоритмы для защиты своих данных от веб-скрейперов и для ограничения количества запросов, которые может отправить IP или IP-сеть. Это вызвало продолжающуюся битву между разработчиками веб-сайтов и разработчиками скраперов. [10]
Report mining — это извлечение данных из компьютерных отчетов, читаемых человеком. Обычное извлечение данных требует подключения к рабочей исходной системе, подходящих стандартов подключения или API и, как правило, сложных запросов. Используя стандартные параметры отчетности исходной системы и направляя вывод в файл очереди вместо принтера , можно создавать статические отчеты, пригодные для автономного анализа с помощью report mining. [11] Такой подход позволяет избежать интенсивного использования ЦП в рабочее время, минимизировать затраты на лицензии конечного пользователя для клиентов ERP и может предложить очень быстрое прототипирование и разработку пользовательских отчетов. В то время как сбор данных и веб-скрапинг предполагают взаимодействие с динамическим выводом, report mining предполагает извлечение данных из файлов в формате, удобном для чтения человеком, например HTML , PDF или текст. Их можно легко сгенерировать практически из любой системы, перехватив подачу данных на принтер. Такой подход может обеспечить быстрый и простой путь к получению данных без необходимости программирования API для исходной системы.
Правовые и этические соображения
Законность и этика сбора данных часто являются предметом споров. Сбор общедоступных данных, как правило, является законным, однако сбор данных способом, который нарушает условия обслуживания веб-сайта, нарушает меры безопасности или вторгается в конфиденциальность пользователя, может привести к судебному преследованию. Более того, некоторые веб-сайты специально запрещают сбор данных в своих роботах.
12. Multilogin. (nd). Multilogin | Предотвращает баны аккаунтов и позволяет масштабировать. https://multilogin.com/blog/how-to-scrape-data-on-google/
13. Митчелл, Р. (2022). «Этика сбора данных». Журнал информационной этики, 31(2), 45-61.
14. Каванаг, Д. (2021). «Антидетектирующие браузеры: новый рубеж в веб-скрапинге». Обзор веб-безопасности, 19(4), 33-48.
15. Уокер, Дж. (2020). «Правовые последствия сбора данных». Tech Law Journal, 22(3), 109-126.