Веб-скрейпинг

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Веб-скрейпинг (англ. Web scraping) — это технология получения веб-данных при помощи их извлечения с веб-ресурсов[1]. Веб-скрейпинг используется для синтаксического преобразования HTML-страниц в более удобные для потребления формы[2][3]. Программное обеспечение для скрейпинга веб-страниц может получить доступ к всемирной паутине непосредственно с помощью протокола передачи гипертекста, а также через веб-браузер.

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

Веб-скрейпинг включает выборку данных и извлечение их со страниц онлайн-ресурса[1][5]. Выборка — это загрузка страницы, которую браузер выполняет при просмотре страницы, ее анализ. Таким образом, просмотр страницы (веб-обход) является основным компонентом скрейпинга, для извлечения информации и последующей обработки. Полученное содержимое страницы можно анализировать, переформатировать, копировать данные в электронную таблицу и так далее. Веб-скрепинг обычно берёт часть данных из страницы, чтобы использовать её для другой цели. Примером скрейпинга может служить поиск на различных сайтах и копирование имен, телефонных номеров, электронных адресов, URL-адресов определённой тематики для создания базы контактов.

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

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

История[править | править код]

История веб-скрейпинга на самом деле намного длиннее, чем кажется, начиная со времени, когда родился Интернет.

  • В июне 1993 года был создан первый веб-робот World Wide Web Wanderer, который предназначался только для измерения размеров Всемирной паутины.
  • В декабре 1993 года появился первый гусеничный веб-поисковик JumpStation. Поскольку в Интернете было не так много веб-сайтов, поисковые системы в то время полагались на своих администраторов веб-сайтов для сбора и редактирования ссылок в определенном формате. Так появилась первая поисковая система WWW, которая опирается на веб-робота.
  • В 2000 году появились первые Web API и API crawler. API-интерфейс программирования приложений. Это интерфейс, который значительно упрощает разработку программы, предоставляя готовые блоки. В 2000 году Salesforce и eBay запустили собственный API, с помощью которого программисты получили доступ к некоторым общедоступным данным. С тех пор многие веб-сайты предлагают веб-API для людей, чтобы получить доступ к их общедоступной базе данных.
  • В 2004 году была запущена библиотека, предназначенная для Python. Поскольку не все веб-сайты предлагают API, программисты все ещё работали над разработкой подхода, который мог бы облегчить веб-скрейпинг. С помощью простых команд, данная разработка может анализировать содержимое из контейнера HTML. Он считается самой сложной и продвинутой библиотекой для веб-скрейпинга, а также одним из самых распространенных и популярных подходов на сегодняшний день.

Методы[править | править код]

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

«Копипаст» вручную

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

Сопоставление текстовых шаблонов

Простой, но мощный подход к извлечению информации веб-страниц может быть основан на команде UNIX grep или средствах сопоставления регулярных выражений языков программирования (например, Perl или Python).

Программирование HTTP

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

Синтаксический анализ HTML

Многие веб-сайты имеют большие коллекции страниц, генерируемых динамически из базового структурированного источника, такого как база данных. Данные одной и той же категории обычно кодируются в похожие страницы с помощью общего скрипта или шаблона. В интеллектуальном анализе данных программа, которая обнаруживает такие шаблоны в определенном источнике информации, извлекает его содержимое и переводит его в форму, называется оболочкой. Алгоритмы генерации оболочки предполагают, что входные страницы системы её индукции соответствуют общему шаблону и что их можно легко идентифицировать в терминах общей схемы URL[6]. Кроме того, некоторые полуструктурированные языки запросов к данным, такие как XQuery и HTQL, могут использоваться для анализа HTML-страниц и извлечения и преобразования содержимого страниц.

DOM парсинга

Встраивая полноценный веб-браузер, такой как Internet Explorer или элемент управления браузера Mozilla, программы могут извлекать динамическое содержимое, создаваемое клиентскими сценариями. Эти элементы управления браузером также анализируют веб-страницы в DOM, чтобы извлечь часть страниц.

Вертикальная агрегация

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


Технология веб-скрейпинг удобна для трансмиссии данных веб-страниц в более удобные формы, однако существуют другие методы парсинга, которые могут решить задачу продуктивнее[7]:

В случае скрейпинга нам необходимо углубляться в HTML-код с целью понять его структуру и найти данные для извлечения. Гораздо проще осуществить парсинг HTML-кода с помощью Nokogiri и отыскать интересующие данные.

Применение[править | править код]

Скрейпинг стал важным инструментом для автоматизированного сбора информации в Интернете. Так он является частью маркетинговых информационных систем (MIS) для формирования баз данных или банков данных, благодаря которым нужные сведения предоставляются в форме табличных отчетов[8].


Программы и аналоги[править | править код]

Программы веб-скрейпинга не рассчитаны на обычных пользователей, с ними работаю программисты, которые в большинстве случаев пишут коды под конкретные задачи. Однако существует разработки, например, скрейпер Nokogiri, который создан специально для языка программирования Rubi[7]. Или существуют скрейперы, которые выполняют определённую задачу из множества возможных, к примеру Outwit Hub[9] собирает текстовую информацию и распределяет по ячейкам. Новые формы веб-скрейпинга включают прослушивание каналов данных с веб-серверов. Например, JSON обычно используется в качестве транспортного механизма хранения данных между клиентом и веб-сервером.

Получение данных с сайтов при помощи доступа к API также эффективно. Такие компании, как Amazon AWS и Google Google (API Discovery service), предоставляют конечным пользователям бесплатные инструменты, сервисы и общедоступные данные для парсинга.

Способы защиты[править | править код]

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

См. также[править | править код]

Анализ данных

Data mining

Парсинг

Примечания[править | править код]

  1. 1 2 Boeing, G.; Waddell, P. New Insights into Rental Housing Markets across the United States: Web Scraping and Analyzing Craigslist Rental Listings // Journal of Planning Education and Research. — 2016. — DOI:10.1177/0739456X16664789. — arXiv:1605.05397.
  2. Тютярев А. А., Соломатин Д. И. Разработка фреймворка для создания веб-скрейперов // Вопросы науки. — 2016. — Т. 3, № 13.
  3. Солощенко М. В., Карамова А. И. Реализация импорта данных из web-ресурсов // Современная математика и её приложения : Статья в сборнике трудов конференции. — Уфа, 2017. — С. 229-231.
  4. Басалаева А. Ю. , Гареева Г. А. , Григорьева Д. Р. Веб-скрейпинг и классификация текстов методом Наивного Байеса // Инновационная наука. — 2018. — № 5 – 2. — ISSN 2410-6070.
  5. Vargiu & Urru. Exploiting web scraping in a collaborative filtering- based approach to web advertising (англ.) // Artificial Intelligence Researc. — 2013. — № 2 (1). — DOI:10.5430/air.v2n1p44.
  6. Song, Ruihua. Joint Optimization of Wrapper Generation and Template Detection" (PDF). The 13th International Conference on Knowledge Discovery and Data Mining. Microsoft Research (Sep 14, 2007).
  7. 1 2 Тим Джонс М. Извлечение информация из Интернета при использовании языка Ruby (22.05.2014).
  8. Павлов Н. В. Методы маркетинговых исследований.
  9. Видеоурок Теплицы: что такое веб-скрейпинг. te-st.ru.

Литература[править | править код]

  • Boeing, G.; Waddell, P. New Insights into Rental Housing Markets across the United States: Web Scraping and Analyzing Craigslist Rental Listings // Journal of Planning Education and Research. — 2016. — DOI:10.1177/0739456X16664789. — arXiv:1605.05397.
  • Китаев Е. Л., Скорнякова Р. Ю. StructScraper – Инструмент для динамического включения в контент веб-страницы семантических данных внешних веб-ресурсов // Научный сервис в сети Интернет. — 2019. — С. 424-431.
  • Китаев Е. Л., Скорнякова Р. Ю. Скрейпинг «на лету» внешних веб-ресурсов, управляемый разметкой HTML страницы // Препринты ИПМ им. М.В.Келдыша. — 2019. — № 20. — С. 31. — DOI:10.20948/prepr-2019-20

Ссылки[править | править код]