Что такое веб-скрапинг? Как легально парсить контент - Парсинг открытых данных

Что такое веб-скрапинг? Как легально парсить контент

depicting legal web scraping

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

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

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

Что такое парсинг данных (веб-скрапинг)?

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

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

Другие термины для обозначения веб-скрапинга включают «скрапинг контента» или «парсинг данных» Независимо от того, как он называется, веб-скрапинг (на слуху «парсинг») — это чрезвычайно полезный инструмент для сбора данных в Интернете. Сфера применения веб-скрапинга включает в себя маркетинговые исследования, сравнение цен, мониторинг контента и многое другое.

Но что именно считывает веб-скрапер и как это возможно? И законно ли это вообще? Разве сайт хочет, чтобы кто-то пришел и получал его данные?

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

Что можно спарсить из Сети?

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

Вот несколько распространенных примеров.

Типы данных, которые можно получать из Интернета

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

В простейших случаях веб-скрапинг может осуществляться через API или интерфейс прикладного программирования веб-сайта . Когда веб-сайт предоставляет свой API, веб-разработчики могут использовать его для автоматического извлечения данных и другой полезной информации в удобном формате. Это почти как если бы веб-хост предоставил вам свой собственный «трубопровод» к своим данным. Поговорим о гостеприимстве!

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

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

Это замечательно, но при этом возникает важный вопрос: Если определенные веб-данные ограничены, законно ли их парсить? Как мы вскоре увидим, это может быть немного немало — серой зоной.

Законен ли веб-скрапинг (парсинг данных)?

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

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

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

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

Что такое вредоносный веб-скрапинг (парсинг)?

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

Как вы можете себе представить, это определение имеет серую зону. В то время как многие типы персональных данных защищены такими законами, как General Data Protection Regulation (GDPR) и California Consumer Privacy Act (CCPA), другие — нет. Но это не значит, что не существует ситуаций, в которых можно получить их не законно.

CCPA поддерживает строгие стандарты обработки персональных данных

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

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

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

Еще один вид вредоносного веб-скрапинга — «чрезмерный парсинг», когда парсеры посылают слишком много запросов за определенный период. Слишком большое количество запросов может создать коллосальную нагрузку на веб-хосты, которые предпочитают тратить ресурсы сервера на реальных людей, а не на ботов-парсеров.

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

Для чего используется веб-скрапинг?

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

Парсинг данных используется во всех отраслях, от электронной коммерции до недвижимости

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

Исследование рынка

Что делают ваши клиенты? Что с вашими потенциальными клиентами? Как соотносятся цены конкурентов с вашими? Есть ли у вас информация для создания успешной кампании входящего маркетинга или контент-маркетинга?

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

Автоматизация бизнеса

Многие из преимуществ веб-скрапинга для исследования рынка также применимы к автоматизации бизнеса.

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

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

Генерация лидов

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

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

Отслеживание цен

Извлечение цен — также известное как ценовой парсинг — одно из самых распространенных применений парсинга данных.

Вот пример из популярного приложения Camelcamelcamel для отслеживания цен на Amazon. Приложение регулярно собирает информацию о ценах на товары и затем сравнивает их на графике с течением времени.

История цен Amazon, отображаемая в приложении для отслеживания цен Camelcamelcamel

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

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

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

Новости и контент

Нет ничего более ценного, чем оставаться в курсе событий. От мониторинга репутации до отслеживания тенденций в отрасли — веб-скрапинг является ценным инструментом для того, чтобы оставаться в курсе событий.

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

Мониторинг бренда

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

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

Недвижимость

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

Парсер данных о недвижимости

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

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

Как работает веб-скрапинг?

Веб-скрапинг (парсинг) может показаться сложным, но на самом деле все очень просто.

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

Парсеры и краулеры

В принципе, веб-скрапинг работает почти так же, как лошадь и плуг.

Краулер и парсер похожи на лошадь и плуг

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

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

Вот что они оба делают.

  • Краулеры (иногда их называют пауками) — это базовые программы, которые просматривают веб-страницы в поисках и индексировании контента. Хотя краулеры направляют работу веб-скраперов, они используются не только для этой цели. Например, поисковые системы, такие как Google, используют краулеры для обновления индексов и рейтингов сайтов. Обычно краулеры доступны в виде готовых инструментов, которые позволяют задать конкретный сайт или поисковый запрос.
  • Парсеры выполняют грязную работу по быстрому извлечению необходимой информации с веб-сайтов. Поскольку веб-сайты структурированы в HTML, парсеры используют регулярные выражения (regex), XPath, селекторы CSS и другие локаторы для быстрого поиска и извлечения определенного содержимого. Например, вы можете задать своему веб-скраперу регулярное выражение, указывающее на название бренда или ключевое слово.

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

Основной процесс веб-скрапинга

На самом базовом уровне процесс веб-скрапинга сводится к нескольким простым шагам:

  1. Укажите URL-адреса веб-сайтов и страниц, которые вы хотите спарсить
  2. Выполнить HTML-запрос к URL-адресам (т. е. «посетить» страницы)
  3. Используйте локаторы, такие как регулярные выражения, для извлечения нужной информации из HTML
  4. Сохраните данные в структурированном формате (например, CSV или JSON)

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

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

Чтобы свести к минимуму лишнюю работу, важно понимать, как сайты пытаются блокировать парсеров — об этом мы узнаем в следующем разделе.

Инструменты для веб-скрапинга

Многие функции веб-скрапинга легко доступны в виде инструментов для веб-скрапинга. Хотя инструментов много, они сильно различаются по качеству, цене и (к сожалению) этике.

Популярные инструменты для веб-скрапинга, отсортированные по сферам применения

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

  • Точные локаторы: Парсеры используют локаторы, такие как регулярные выражения и CSS-селекторы, для извлечения конкретных данных. Инструмент, который вы выберете, должен предоставлять вам несколько вариантов указания того, что вы ищете.
  • Качество данных: Большинство веб-данных являются неструктурированными, даже если они понятны человеческому глазу. Работа с неструктурированными данными не только беспорядочна, но и редко приносит хорошие результаты. Обязательно ищите инструменты для парсинга, которые очищают и сортируют необработанные данные перед отправкой.
  • Доставка данных: В зависимости от существующих инструментов или рабочих процессов вам, вероятно, понадобятся данные в определенном формате, например JSON, XML или CSV. Вместо того чтобы самостоятельно преобразовывать необработанные данные, ищите инструменты с возможностью доставки данных в нужные вам форматы.
  • Антипарсинг: Веб-скрапинг эффективен лишь настолько, насколько он способен обходить блокировки. Хотя для разблокирования веб-сайтов вам могут понадобиться дополнительные инструменты, такие как прокси-серверы и VPN, многие инструменты для веб-скрапинга делают это путем внесения небольших изменений в свои краулеры.
  • Прозрачное ценообразование: Хотя некоторые инструменты для веб-скрапинга бесплатны, за более надежные варианты приходится платить. Обратите внимание на схему ценообразования, особенно если вы планируете масштабировать и парсить множество сайтов.
  • Поддержка клиентов: Хотя использование готовых инструментов очень удобно, вы не всегда сможете устранить проблемы самостоятельно. Поэтому убедитесь, что ваш поставщик предлагает надежную поддержку клиентов и ресурсы для устранения неполадок.

К популярным инструментам для веб-скрапинга относятся Octoparse, Import.io и Parsehub.

Защита от веб-скрапинга

Давайте немного изменим ситуацию: Предположим, вы — веб-хостинг, но не хотите, чтобы другие люди использовали все эти хитроумные методы для сбора ваших данных. Что вы можете сделать, чтобы защитить себя?

Помимо базовых плагинов безопасности, существует несколько эффективных методов блокировки веб-скраперов и краулеров.

Распространенные методы защиты от парсеров

  • Блокировка IP-адресов: Многие хостеры отслеживают IP-адреса своих посетителей. Если хостер замечает, что один конкретный посетитель генерирует много запросов к серверу (как в случае с некоторыми веб-скраперами или ботами), то он может полностью заблокировать этот IP-адрес. Однако парсеры могут обойти эти блокировки, изменив свой IP-адрес через прокси-сервер или VPN.
  • Настройка robots.txt: Файл robots.txt позволяет хостеру указать парсерам, краулерам и другим ботам, к чему они могут получить доступ, а к чему нет. Например, некоторые веб-сайты используют файл robots.txt, чтобы сохранить конфиденциальность и запретить поисковым системам индексировать их. Хотя большинство поисковых систем уважают эти файлы, многие вредоносные формы веб-скраперов этого не делают.
  • Фильтрация запросов: Всякий раз, когда кто-то посещает веб-сайт, он «запрашивает» HTML-страницу у веб-сервера. Эти запросы часто видны веб-хостам, которые могут просматривать определенные идентифицирующие факторы, такие как IP-адреса и пользовательские агенты , например, веб-браузеры. Хотя мы уже рассказывали о блокировке IP-адресов, веб-хосты также могут фильтровать запросы по пользовательскому агенту.

Например, если веб-хост заметит множество запросов от одного и того же пользователя, использующего давно устаревшую версию Mozilla Firefox, то он может просто заблокировать эту версию и тем самым заблокировать бота. Такие возможности блокировки доступны в большинстве тарифных планов управляемого хостинга.

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

Как парсеры обходят защиту

Теперь давайте вернемся назад. Что может сделать парсер, чтобы преодолеть эти меры защиты?

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

Прокси могут помочь избежать запрета IP-адресов и масштабировать усилия по парсингу

  • Используйте прокси или VPN: поскольку многие хостинги блокируют веб-скраперы на основании их IP-адреса, часто необходимо использовать несколько IP-адресов, чтобы гарантировать доступ. Прокси-серверы и виртуальные частные сети (VPN) идеально подходят для этой задачи, хотя у них есть несколько ключевых отличий.
  • Регулярно посещайте свои объекты: Большинство (если таковые имеются) веб-скраперов сообщат вам, когда их заблокируют. Поэтому важно регулярно проверять место, откуда вы ведете поиск, чтобы узнать, не заблокировали ли вас или не изменилось ли форматирование сайта. Заметьте, что одно из этих действий практически гарантировано в какой-то момент.

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

Резюме

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


Переведено с официального сайта Kinsta