Открыть сервис

Web scraping

Web scraping — это автоматизированный процесс сбора данных с веб-страниц с использованием программных средств, предназначенный для извлечения структурированной информации из неструктурированного или полуструктурированного HTML-кода. Web scraping относится к классу методов извлечения данных (data extraction) и широко применяется для мониторинга контента, анализа рынка, сбора контактной информации, агрегации новостей и научных исследований.

История

Методы автоматического извлечения данных из веб-источников начали развиваться в середине 1990-х годов, одновременно с ростом популярности Всемирной паутины. Первые инструменты были простыми скриптами на языках Perl и Python, которые загружали HTML-файлы и обрабатывали их с помощью регулярных выражений. В 1996 году появилась первая коммерческая система для веб-скрапинга — WebL, разработанная в лаборатории Compaq.

В 2000-е годы с развитием технологии AJAX и динамических веб-страниц возникла необходимость в инструментах, способных обрабатывать JavaScript-рендеринг. Появились библиотеки Selenium (2004 год) и PhantomJS (2011 год), которые позволяли эмулировать работу браузера. В 2010-е годы web scraping стал массовым явлением: появились облачные сервисы (Scrapinghub, Octoparse), а также специализированные фреймворки (Scrapy, Beautiful Soup).

Технические аспекты

Основные этапы процесса

  1. Загрузка веб-страницы: HTTP-запрос к серверу с использованием библиотек (requests, urllib) или браузерных движков.
  2. Парсинг HTML: разбор DOM-дерева с помощью инструментов (Beautiful Soup, lxml, html.parser).
  3. Извлечение данных: выборка элементов по CSS-селекторам, XPath-выражениям или регулярным выражениям.
  4. Очистка и структурирование: удаление лишних пробелов, преобразование типов данных, удаление дубликатов.
  5. Сохранение: экспорт в CSV, JSON, базу данных или электронную таблицу.

Инструменты и технологии

Наиболее популярные инструменты для web scraping в России и мире:

  • Requests (Python) — библиотека для выполнения HTTP-запросов.
  • Beautiful Soup (Python) — парсер HTML/XML с поддержкой навигации по DOM.
  • Scrapy (Python) — полноценный фреймворк для масштабного сбора данных, поддерживающий асинхронные запросы, паузы и обработку ошибок.
  • Selenium (Python/Java/JavaScript) — инструмент автоматизации браузера, поддерживающий JavaScript-рендеринг.
  • Puppeteer (Node.js) — библиотека для управления браузером Chrome/Chromium.
  • Playwright (Node.js/Python) — современный инструмент для автоматизации браузеров, поддерживающий Chromium, Firefox и WebKit.

Методы обхода защиты

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

  • CAPTCHA — тесты Тьюринга для отличия человека от робота.
  • Rate limiting — ограничение числа запросов с одного IP-адреса.
  • User-Agent проверкаблокировка запросов от нестандартных или подозрительных User-Agent.
  • JavaScript-рендеринг — динамическая загрузка контента через AJAX.
  • IP-блокировка — внесение IP-адресов в чёрный список.

Для обхода этих мер используются:

  • Ротация прокси-серверов (в том числе резидентных).
  • Использование заголовков, имитирующих реальные браузеры.
  • Установка задержек между запросами (sleep).
  • Решение CAPTCHA через специализированные сервисы (например, 2Captcha, Anti-Captcha).
  • Эмуляция браузеров с помощью Selenium/Playwright.

Применение

Коммерческое использование

  • Мониторинг цен — сбор данных о стоимости товаров на сайтах конкурентов для динамического ценообразования.
  • Анализ рынка — сбор отзывов, рейтингов, характеристик товаров с маркетплейсов (Ozon, Wildberries, Яндекс.Маркет).
  • Сбор контактных данных — извлечение email-адресов, телефонов, профилей в социальных сетях для маркетинговых целей.
  • Агрегация новостей — автоматический сбор статей с новостных порталов (РИА Новости, ТАСС, Интерфакс).

Научные и исследовательские цели

  • Лингвистические исследования — сбор текстов для создания корпусов русского языка.
  • Социологические опросы — анализ общественного мнения по данным социальных сетей и форумов.
  • Медицинские исследования — сбор данных о лекарственных препаратах и клинических испытаниях.

Государственные и муниципальные нужды

  • Мониторинг госзакупок — сбор данных с портала ЕИС (zakupki.gov.ru) для анализа конкурентной среды.
  • Контроль цен на социально значимые товары — автоматический сбор данных с сайтов розничных сетей (Магнит, Пятёрочка, Ашан).

Правовые аспекты

Законодательство Российской Федерации

В России правовой статус web scraping не урегулирован отдельным законом, но регулируется несколькими нормативными актами:

  • Федеральный закон «Об информации, информационных технологиях и о защите информации» (№ 149-ФЗ) — устанавливает общие принципы доступа к информации.
  • Федеральный закон «О персональных данных» (№ 152-ФЗ) — ограничивает сбор персональных данных без согласия субъекта.
  • Статья 272 УК РФ (Неправомерный доступ к компьютерной информации) — применима в случае взлома или несанкционированного доступа к защищённым системам.
  • Статья 273 УК РФ (Создание, использование и распространение вредоносных программ) — может применяться к инструментам scraping, если они наносят ущерб.
  • Статья 183 УК РФ (Незаконные получение и разглашение сведений, составляющих коммерческую, налоговую или банковскую тайну) — применима при сборе конфиденциальной информации.

В 2023 году в Государственную думу РФ вносился законопроект № 349011-8, направленный на регулирование автоматизированного сбора данных, но на момент написания статьи он не был принят.

Международное регулирование

  • GDPR (Европейский союз) — требует получения согласия на сбор персональных данных, scraping без согласия может быть признан незаконным.
  • Computer Fraud and Abuse Act (CFAA) (США) — запрещает несанкционированный доступ к компьютерным системам, что может распространяться на scraping при нарушении условий использования (Terms of Service).
  • hiQ Labs v. LinkedIn (США, 2019) — прецедентное решение, признавшее scraping публично доступных данных законным, если он не нарушает технические меры защиты.

Этические аспекты

Специалисты по web scraping придерживаются следующих принципов:

  • Уважение к файлу robots.txt — стандарту, указывающему, какие разделы сайта не должны сканироваться.
  • Ограничение частоты запросов (не более 1 запроса в 2–5 секунд) для снижения нагрузки на сервер.
  • Использование данных только в законных целях (не для спама, мошенничества или нарушения авторских прав).
  • Информирование владельца сайта о намерении собирать данные (в коммерческом контексте).

Критика и ограничения

Web scraping подвергается критике по нескольким причинам:

  • Нарушение авторских прав — сбор контента без разрешения правообладателя может нарушать исключительные права.
  • Несанкционированная коммерческая выгода — использование scraped-данных для конкуренции с оригинальным сервисом.
  • Нагрузка на инфраструктуру — агрессивный scraping может приводить к отказу в обслуживании (DoS) для обычных пользователей.
  • Недостоверность данных — при изменении структуры сайта скрипты могут выдавать некорректные результаты.

Интересные факты

  • Крупнейший в мире архив веб-страниц — Internet Archive (Wayback Machine) — содержит более 800 миллиардов страниц, собранных автоматическими скриптами.
  • В 2020 году российский сервис «Яндекс.Карты» использовал web scraping для сбора данных о пробках и загруженности дорог.
  • По данным исследования 2023 года, около 40% трафика на крупных интернет-магазинах формируется ботами, часть из которых — scraping-роботы.
  • В 2021 году компания Meta (признана экстремистской и запрещена в РФ) подала иск против компании BrandTotal за scraping данных пользователей LinkedIn.

Источники

  1. Федеральный закон «Об информации, информационных технологиях и о защите информации» от 27.07.2006 № 149-ФЗ.
  2. Федеральный закон «О персональных данных» от 27.07.2006 № 152-ФЗ.
  3. Уголовный кодекс Российской Федерации (статьи 272, 273, 183).
  4. Mitchell R. Web Scraping with Python. — 2nd ed. — O'Reilly Media, 2018.
  5. Lawson R. Web Scraping with Python: A Comprehensive Guide. — Packt Publishing, 2021.
  6. Постановление Пленума Верховного Суда РФ от 15.12.2022 № 37 «О некоторых вопросах применения законодательства об информации, информационных технологиях и о защите информации».
  7. hiQ Labs, Inc. v. LinkedIn Corp., 938 F.3d 985 (9th Cir. 2019).
  8. Статистика использования ботов в интернет-торговле: DataReportal, Digital 2023: Global Overview Report.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →