ПРЕИМУЩЕСТВА АВТОМАТИЧЕСКОГО СБОРА ДАННЫХ В СЕТИ ИНТЕРНЕТ НАД РУЧНЫМ СБОРОМ ДАННЫХ

ADVANTAGES OF AUTOMATIC DATA COLLECTION IN THE INTERNET OVER MANUAL DATA COLLECTION
Меньшиков Я.С.
Цитировать:
Меньшиков Я.С. ПРЕИМУЩЕСТВА АВТОМАТИЧЕСКОГО СБОРА ДАННЫХ В СЕТИ ИНТЕРНЕТ НАД РУЧНЫМ СБОРОМ ДАННЫХ // Universum: технические науки : электрон. научн. журн. 2022. 10(103). URL: https://7universum.com/ru/tech/archive/item/14383 (дата обращения: 18.12.2024).
Прочитать статью:

 

АННОТАЦИЯ

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

ABSTRACT

In connection with the development of IT technologies, it becomes possible to automate any IT processes. The speed of access to the required information directly affects the efficiency of IT processes and the business as a whole. The information in this article is as up-to-date as possible. The goal is to show the ways of automatic data collection and the main difficulties along the way, to prove the advantage of automatic data collection over manual data collection.

 

Ключевые слова: веб-парсинг, автоматизация, автоматическая регистрация, веб-портал, парсинг.

Keywords: web parsing, automation, automatic registration, web portal, web scraping

 

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

Парсинг (англ. parsing) — автоматизированный сбор и систематизация информации из открытых источников с помощью программного обеспечения. Альтернативное название этого процесса — веб-скрейпинг (web scraping). ПО, которое собирает и систематизирует информацию, называется парсером.

За последнее десятилетие данные стали ресурсом для развития бизнеса, а сеть Интернет — их основным источником благодаря уже более чем пяти миллиардам пользователей [1]. Анализ данных Всемирной паутины помогает компаниям выявлять скрытые закономерности, позволяющие им добиваться выполнения своих целей.

Парсинг веб-сайтов позволяет компаниям автоматизировать процессы сбора данных во Всемирной паутине, используя ботов или автоматические скрипты, называемые «обходчиками» веб-страниц, автоматическими сборщиками данных или веб-сборщиками (web crawlers). Существует множество видов программ для сбора данных, поэтому далее будем называть это абстрактным термином Программное обеспечение (далее, ПО). В этой статье доказывается преимущество ПО над ручным сбором данных в сети Интернет и рассмотрены различные глобальные подходы для работы данного ПО.

Процесс парсинга данных состоит из трех основных этапов:

  1. Автоматическая регистрация на веб-портале.
  2. Парсинг необходимых данных.
  3. Сохранение полученных данных в базе данных.

Давайте разберемся, что такое «Автоматическая регистрация»?
Начнем сразу с простого примера: вам необходимо автоматически получить данные с некоторого веб-портала. «Автоматически» означает, что получением данных занимается не пользователь, а некоторое ПО. При обращении к веб-порталу (будь то пользователь или ПО) вы столкнетесь с проблемой выполнения авторизации на веб-портале. Все дело в том, что данные в сети Интернет бывают открытыми (авторизация не требуется) и закрытыми (требуется авторизация, обычно логин и пароль).

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

Теперь мы можем сделать соответствующий вывод: «Автоматическая регистрация» — это процесс авторизации пользователя к веб-порталу, не прибегая к труду пользователя, а используя ресурсы ПО.

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

1. Вы разрабатываете некоторое ПО, в котором Вам нужно периодически обращаться к свежим данным курсов валют.

Согласитесь, для разработки ПО для бизнеса необходимо чтобы эти данные были получены автоматически. Чтобы иметь данные о курсах валют необходимо получить данные многих банков и эти данные могут изменяться очень быстро. Поэтому о получении таких данных вручную не может идти речи, так как это сильно долго (а значит дорого), занимает много человеческих ресурсов и приводит к созданию ошибок (люди часто совершают ошибки, не так ли?).

2. Вам нужно найти список ваших возможных клиентов в социальной сети Интернет используя такие входящие данные, такие как возраст, пол, место жительства, место работы и прочие.

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

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

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

Пример из жизни: один человек имеет некоторый бизнес, веб-портал со списком развлечений города. Основная прибыль идет с получения просмотров рекламы пользователями. В некоторый момент он нанял работника чтобы тот вручную открывал городские порталы кинотеатров и заносил список фильмов на свой веб-сайт. Тем самым он пытался сделать некоторый агрегатор кинофильмов города. Он не знал, что существуют другие способы кроме как делать эту нудную работу вручную. В некоторый момент его работник заболел, и он временно взял другого человека на эту должность. Новый человек умел делать скрипты для веб-браузера. За один вечер скрипты были созданы для каждого веб-портала кинотеатров. Оставалось только авторизоваться на веб-портале (обычно веб-браузер запоминает авторизацию и потому не требуется каждый день вводить логин и пароль) и нажать одну кнопку чтобы необходимые данные были загружены. Если раньше этот процесс занимал 2-3 часа в день, то теперь не более 5 минут.

Для оценки преимуществ и недостатков ручного и автоматического вариантов составим таблицу 1:

Таблица 1.

Преимущества и недостатки ручного и автоматического способов парсинга данных

 

Ручной способ

Автоматический способ

Временные затраты

+++++

+

Постоянные расходы

+++++

Зарплата сотрудникам

++

Вычислительные мощности для запуска ПО (небольшие)

Переменные расходы

+

Практически отсутствуют

+++++

Зарплата программисту для поддержки ПО

 

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

Исходя из таблицы 1 видно, что ручной способ занимает много временных и денежных затрат на оплату заработной платы. Автоматический способ, несмотря на его быструю работу и отсутствие постоянных затрат, требует написание ПО и затраты на его поддержку для оплаты работы программиста. Это значит, что в условиях малого бизнеса и быстроизменяющихся веб-порталов оплата программиста может стоить дороже чем оплата низкоквалифицированного персонала. Для среднего и большого бизнеса скорость получения данных крайне важна, необходимые ресурсы уже есть, а значит автоматический парсинг данных сильно выигрывает в сравнении с ручным подходом.

В настоящее время существует два основных типа парсинга данных:

  1. Классический, выполнение Get/Post запросов к веб-порталу.
  2. Автоматизация веб-браузера.

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

Большинство современных языков программирования (C# [2], Java [3], Python [4]) имеют инструменты для отправки HTTP-пакетов и остается только узнать какие данные записать в отправляемый HTTP-пакет. Для этого существует множество инструментов таких как снифферы HTTP-пакетов (например: Fiddler [5], Charles Proxy [6]). Суть работы со сниффером – это запустить сниффер, в веб-браузере нажать кнопку авторизации, проверить в сниффере отправленный HTTP-пакет.

Основными проблемами классического парсинга данных являются:

  1. Низкая скорость разработки ПО. При разработке такого приложения программисту приходится много времени потратить на фильтрацию нужных ему HTTP-пакетов, доскональное изучение этих HTTP-пакетов, сбор данных необходимых значений заголовков HTTP-пакетов.
  2. Сложность разработки ПО. С каждым годом технологии защиты только усиливаются. Вводятся разнообразные уловки для производителей парсеров. За счет этого сложность разработки увеличивается, в некоторых случаях делая классический парсинг невозможным. 

Рассмотрим вариант автоматизации веб-браузера на примере фреймворк Selenium [7]. Основное преимущество данного подхода – это не создавать сложные запросы классического подхода на HTTP-уровне, а использовать установленный на персональном компьютере веб-браузер. Достаточно только запрограммировать последовательность эмулируемых действий пользователя таких как: ввести в текстовое поле строку, нажать кнопку клавиатуры, нажать кнопку манипулятора мышь, переключить активную вкладку веб-браузера, управлять данными Cookie для выбранного домена.

Для оценки преимуществ и недостатков классического подхода и подхода автоматизации составим таблицу 2:

Таблица 2.

Преимущества и недостатки классического подхода и подхода автоматизации веб-браузера

 

Классический подход

Автоматизация веб-браузера

Временные затраты

От ++++ до +++++

++

Сложность разработки

От +++ до +++++

++

Опасность блокировки аккаунта

+++

+

 

Скорость работы ПО

+++++

++

 

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

В данном подходе ПО не загружает файлы изображений, CSS-стилей, скрипты JS, шрифты, так как это просто не нужно. Но продвинутая защита удаленного веб-сервера может выявить работу бот-программы.

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

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

Заключение

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

 

Список литературы:

    1. DIGITAL 2022: JULY GLOBAL STATSHOT REPORT. Режим доступа: URL: https://datareportal.com/reports/digital-2022-july-global-statshot (дата обращения: 20.09.2022).
    2. Классы WebRequest и WebResponse. Режим доступа: URL: https://metanit.com/sharp/net/2.2.php (дата обращения: 21.09.2022).
    3. Class HttpsURLConnection. Режим доступа: URL: https://docs.oracle.com/javase/1.5.0/docs/api/javax/net/ssl/HttpsURLConnection.html (дата обращения: 21.09.2022).
    4. httplib — HTTP protocol client. Режим доступа: URL: https://docs.python.org/2.6/library/httplib.html (дата обращения: 21.09.2022).
    5. Fiddler Classic. Режим доступа: URL: https://www.telerik.com/fiddler/fiddler-classic (дата обращения: 21.09.2022).
    6. Charles. Режим доступа: URL: https://www.charlesproxy.com/ (дата обращения: 21.09.2022).
    7. OpenQA.Selenium Namespace. Режим доступа: URL: https://www.selenium.dev/selenium/docs/api/dotnet/# (дата обращения: 22.09.2022).
Информация об авторах

ведущий разработчик, ООО «ГисАвто», РФ, г. Новосибирск

Lead developer, GisAvto LLC, Russia, Novosibirsk

Журнал зарегистрирован Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), регистрационный номер ЭЛ №ФС77-54434 от 17.06.2013
Учредитель журнала - ООО «МЦНО»
Главный редактор - Ахметов Сайранбек Махсутович.
Top