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

Процесс
Процесс Веб-скрейпинга

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

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

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

История

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

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

Методы

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

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

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

Обращение к прокси-сервису

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

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

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

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

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

Document Object Model ( DOM)

DOM — программа с API для HTML- и XML-документов . Встраивая полноценный веб-браузер, такой как Internet Explorer или элемент управления браузера Mozilla, программы могут извлекать динамическое содержимое, создаваемое клиентскими сценариями. Скрейпинг DOM-дерева позволяет получить доступ к информации в отдельных её частях .

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

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

Распознавание семантических аннотаций

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

Анализаторы страниц

Ведутся разработки в области искусственного интеллекта, когда машинное зрение идентифицирует данные, интерпретирует их, как бы это делал человек, их извлекает .

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

Применение

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

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

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

В основном веб-скрейперы решают следующие задачи:

  • Поиск необходимой информации;
  • Копирование данных из Интернета;
  • Мониторинг обновлений на сайтах .

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

Программы и аналоги

Программы веб-скрейпинга не рассчитаны на обычных пользователей, с ними работают программисты, которые в большинстве случаев пишут коды под конкретные задачи. В Интернете можно найти различные средства и инструменты для веб-скрейпинга: библиотеки, приложения, online-сервисы, облачные сервисы, сервисы типа DaaS, плагины к браузерам. Один из популярных средств скрейпинга Scrapy (это бесплатный фреймворк с открытым кодом ) . Среди коммерческих популярной является платформа Import.IO .

Существует разработки, например, Nokogiri, который создан специально для языка программирования Ruby , скрейперы, которые выполняют определённую задачу из множества возможных: Outwit Hub собирает текстовую информацию и распределяет по ячейкам. Новые формы веб-скрейпинга включают прослушивание каналов данных с веб-серверов. Например, JSON обычно используется в качестве транспортного механизма хранения данных между клиентом и веб-сервером.

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

Способы защиты и обход блокировок

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

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

  • Необычное поведение пользователя (например, сотни переходов на новую страницу сайта каждую секунду);
  • Повторяющиеся безрезультатные действия (пользователь не будет выполнять одни и те же задачи раз за разом);
  • Использование ссылок, которые содержатся только в коде веб-сайта и не видны обычным пользователям .

Способы блокировки:

  1. Запретить доступ на сайт с определённого IP-адреса (например, когда ботом пройдено более 100 страниц за сессию);
  2. Запретить идентификатор пользователя, являющийся с точки зрения администратора сайта злоумышленником, заходящим на сайт по аутентификации .

Чтобы обойти блокировку, программы веб-скрейпинга должны производить на сайте действия, максимально близкие к поведению пользователей. Поэтому следует периодически ротировать IP-адреса, изменять идентификатор пользовательского агента ( User Agent ) и настроить скорость обращений веб-скрейпера на оптимальную, а между обращениями — встроить случайные действия на сайте, которые не вызовут подозрения .

Юридические особенности

Юридические аспекты веб-скрейпинга регулируются законодательством в области защиты персональных данных . В России регулирующим документом выступает Федеральный закон «О персональных данных» от 27 июля 2006 года № 152-ФЗ . В Евросоюзе действие скрейперов должно соответствовать требованию общего регламента защиты персональных данных (GDPR) . Во Франции с апреля 2020 года действует отдельный регламентирующий документ, изданный национальной комиссией по информатизации и свободе (CNIL) ограничивающий сбор персональных данных из открытых источников .

См. также

Примечания

  1. 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 : . — arXiv : .
  2. . cyberleninka.ru. Дата обращения: 14 января 2020. 13 декабря 2019 года.
  3. Тютярев А. А., Соломатин Д. И. // Вопросы науки. — 2016. — Т. 3 , № 13 . 25 января 2021 года.
  4. Vargiu & Urru. Exploiting web scraping in a collaborative filtering- based approach to web advertising (англ.) // Artificial Intelligence Researc. — 2013. — № 2 (1) . — doi : .
  5. . Дата обращения: 9 января 2020. 3 января 2020 года.
  6. . Дата обращения: 9 января 2020. 19 января 2021 года.
  7. Валерия Черепенчук, Ирина Ломакина, Наталья Сердцева. . — Litres, 2019-12-13. — 322 с. — ISBN 978-5-04-220661-0 .
  8. С. Кингснорт. . — ISBN 9785041757397 .
  9. (англ.) . www.octoparse.com. Дата обращения: 9 января 2020. 7 августа 2020 года.
  10. www.crummy.com. Дата обращения: 14 января 2020. 27 марта 2022 года.
  11. Jeff Desjardins. www.visualcapitalist.com . Visual Capitalist (14 мая 2018). Дата обращения: 14 января 2020. 11 ноября 2019 года.
  12. www.mathnet.ru. Дата обращения: 7 марта 2020.
  13. Демидова О.О., Савельев А.О. Сравнительный анализ техник извлечения данных из веб-страниц при решении задачи кластеризации научных публикаций // Электронные средства и системы управления. Материалы докладов международной научно-практической конференции..
  14. Song, Ruihua. . The 13th International Conference on Knowledge Discovery and Data Mining . Microsoft Research (14 сентября 2007). Дата обращения: 27 ноября 2019. 27 ноября 2019 года.
  15. www.w3.org. Дата обращения: 9 января 2020. 6 мая 2019 года.
  16. Song R. Joint Optimization of Wrapper Generation and Template Detection // The 13th International Conference on Knowledge Discovery and Data Mining. — 2007. — С. 13—20 .
  17. . findpatent.ru. Дата обращения: 9 марта 2020.
  18. (англ.) . www.gooseeker.com. Дата обращения: 7 марта 2020. 3 декабря 2019 года.
  19. (англ.) . Xconomy (25 июля 2012). Дата обращения: 7 марта 2020. 29 февраля 2020 года.
  20. Тим Джонс М. (22 мая 2014). Дата обращения: 13 декабря 2019. 13 декабря 2019 года.
  21. Павлов Н. В. .
  22. Joyce G. . Дата обращения: 17 декабря 2019. 17 декабря 2019 года.
  23. Басалаева А. Ю. , Гареева Г. А. , Григорьева Д. Р. // Инновационная наука. — 2018. — № 5—2 . — ISSN . 13 декабря 2019 года.
  24. Москаленко А. А., Лапонина О. Р., Сухомлин В. А. Разработка приложения веб-скрапинга с возможностями обхода блокировок // Современные информационные технологии и ИТ-образование. — 2019. — Т. 15 , № 2 . — С. 413—420 . — doi : .
  25. . scrapy.org. Дата обращения: 7 марта 2020. 22 марта 2020 года.
  26. (англ.) . www.import.io . Import.io - Data Extraction, Web Data, Web Harvesting, Data Preparation, Data Integration. Дата обращения: 7 марта 2020. 5 марта 2020 года.
  27. . Что такое веб-скрейпинг . te-st.ru . «Теплица социальных технологий»: Курсы, статьи, видеоуроки, события, IT-решения и сообщества (25 января 2017). Дата обращения: 13 декабря 2019. 13 декабря 2019 года.
  28. Москаленко А. А., Лапонина О. Р., Сухомлин В. А. Разработка приложения веб-скрапинга с возможностями обхода блокировок // Современные информационные технологии и ИТ-образование. — 2019. — Т. 5 , № 2 .
  29. . PDMaster . ru : информационный портал о персональных данных (15 апреля 2020). Дата обращения: 5 июля 2020. 5 июля 2020 года.
  30. (англ.) . Web scraping service by FindDataLab (6 апреля 2020). Дата обращения: 5 июля 2020. 28 января 2021 года.
  31. FindDataLab.com. (англ.) . Medium (9 июня 2020). Дата обращения: 5 июля 2020. 5 июля 2020 года.

Литература

  • Китаев Е. Л., Скорнякова Р. Ю. StructScraper — Инструмент для динамического включения в контент веб-страницы семантических данных внешних веб-ресурсов // Научный сервис в сети Интернет. — 2019.
  • Китаев Е. Л., Скорнякова Р. Ю. Скрейпинг «на лету» внешних веб-ресурсов, управляемый разметкой HTML страницы // Препринты ИПМ им. М. В. Келдыша. — 2019. — № 20. — DOI :10.20948/prepr-2019-20.
  • Солощенко М. В., Карамова А. И. Реализация импорта данных из web-ресурсов // Современная математика и её приложения : Статья в сборнике трудов конференции. — Уфа, 2017.
  • Тютярев А. А., Соломатин Д. И. Разработка фреймворка для создания веб-скрейперов // Вопросы науки. — 2016. — Т. 3, № 13.
  • Adamuz P.L . Development of a generic test-bed for web scraping. Barcelona: European Education and Training Accreditation Center, 2015.
  • 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.
  • Huan Liu, Fred Morstatter, Jiliang Tang, Reza Zafarani. The good, the bad, and the ugly: uncovering novel research opportunities in social media mining (англ.) // International Journal of Data Science and Analytics. — 2016-11. — Vol. 1, iss. 3-4. — ISSN 2364-4168 2364-415X, 2364-4168. — DOI :10.1007/s41060-016-0023-0.
  • Geoff Boeing, Paul Waddell. New Insights into Rental Housing Markets across the United States: Web Scraping and Analyzing Craigslist Rental Listings (англ.) // Journal of Planning Education and Research. — 2017-12. — Vol. 37, iss. 4. — ISSN 1552-6577 0739-456X, 1552-6577. — DOI :10.1177/0739456X16664789.
  • Rizqi Putri Nourma Budiarti, Nanang Widyatmoko, Mochamad Hariadi, Mauridhi Hery Purnomo. Web scraping for automated water quality monitoring system: A case study of PDAM Surabaya // 2016 International Seminar on Intelligent Technology and Its Applications (ISITIA). — Lombok, Indonesia: IEEE, 2016-07. — ISBN 978-1-5090-1709-6 . — DOI :10.1109/ISITIA.2016.7828735.

Ссылки

Источник —

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