SEO-кухня SEO-кухня 14.03.2023

Что такое веб-скрейпинг и как он работает

Что такое web-scraping и зачем он нужен. Как он работает и чем отличается от парсинга. Насколько законно извлекать данные с сайта и как их применять. Какие сервисы лучше использовать для безопасного веб-скрейпинга: список проверенных инструментов.

Что такое веб-скрейпинг и как он работает

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

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

Что такое веб‑скрейпинг

Веб‑скрейпинг (web scraping, буквально «выскребание, соскабливание веба») —
автоматизированный процесс извлечения данных с сайта.

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

В рамках веб‑скрейпинга данные собираются автоматически в больших объёмах — с помощью ботов. Под ботом имеется в виду любая программа, собирающая данные с веб‑сайтов. Это может быть готовая программа, которую надо установить на компьютер, веб‑приложение или самописный сервис.

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

Схема работы веб‑скрейпинга
Схема работы веб‑скрейпинга

Чем скрейпинг отличается от парсинга данных

Скрейпинг и парсинг легко спутать, потому что эти понятия часто используют как взаимозаменяемые. Разобраться можно, если узнать дословный перевод слов to scrape и to parse.

Скрейпинг (от глагола to scrape — «соскребать, собирать») — автоматизированный сбор данных, как мы уже писали.

Парсинг (от глагола to parse — «разбирать») — процесс, на котором из скачанных данных извлекается нужная информация и превращается в нужный нам читаемый формат. Проще говоря, второй этап веб‑скрейпинга.

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

Зачем нужен веб‑скрейпинг

У скрейпинга много сфер применения:

  • Отслеживание цен на товары в интернет‑магазинах

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

  • Извлечение описаний товаров и услуг

Это поможет улучшить свои описания товаров и услуг с опорой на тексты конкурентов.

  • Мониторинг новостей и объявлений

Инструмент для отслеживания интересных тем и создания актуального контента.

  • Сбор данных для аналитики

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

Вы наверняка видели подобные исследования в интернете:

Исследование «Эвотора» для «Тинькофф‑Журнала»
Исследование «Эвотора» для «Тинькофф‑Журнала»
Исследование «Эвотора» для «Тинькофф‑Журнала»
Исследование «Эвотора» для «Тинькофф‑Журнала»

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

  • Извлечение контактной информации

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

  • Мониторинг репутации бренда

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

Какой бывает веб‑скрейпинг

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

Условно скрейпинг делится на хороший и плохой.

Законный (хороший)

  • Работа ботов поисковых систем. Они просматривают сайт, анализируют его контент и индексируют.

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

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

В результате мы можем видеть информацию с разных сайтов в одном каталоге:

Авиабилеты разных авиакомпаний на сайте OneTwoTrip
Авиабилеты разных авиакомпаний на сайте OneTwoTrip
  • Маркетинговые (и не только) исследования. При создании таких исследований компании задействуют ботов, которые извлекают сообщения из соцсетей и форумов и затем сводят их в один документ.

Пример такого исследования мы привели выше, в разделе «Зачем нужен веб‑скрейпинг».

Незаконный (плохой)

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

  • Анализ цен конкурентов

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

Чаще всего такое происходит в отраслях, где товары можно легко и быстро сопоставить, а цена играет решающую роль при покупке. То есть это не дешёвые товары повседневного спроса, а то, что человек считает крупной покупкой: авиа‑ и ж/д‑билеты, туристические путёвки, электроника и бытовая техника.

  • Кража контента

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

❗️Получается, что и боты, которые собирают данные с сайтов, условно делятся на «плохих» и «хороших». Есть пара признаков, по которым их можно узнать:

  1. «Хорошие» боты действуют согласно директивам из файла robots.txt. В этом файле веб‑мастер прописывает, как обходить конкретные страницы сайта — например, какие индексировать, какие нет. «Плохие» боты игнорируют robots.txt и ходят по всем страницам сайта.

Как закрыть сайт от индексации в robots.txt

  1. «Хороший» бот обычно ссылается на организацию, которая «послала» его исследовать страницы. Запись (referer), показывающая, к какой организации бот относится, обычно прописана в HTTP‑заголовке бота. «Плохие» боты имитируют естественный трафик, ничего не указывая, будто на сайт зашёл человек.

От «плохих» ботов сайты защищаются с помощью различных технологий: распознавание репутации IP, введение прогрессивных задач, проверка HTTP‑заголовка, анализ поведения посетителей. Подробнее об этом в следующем разделе.

Нам важно про это знать не только ради защиты своего сайта, но и чтобы самим не оказаться «плохим» ботом. О том, как безопасно извлекать данные и не попадать под блокировки, в разделе «Как безопасно извлекать данные с сайта».

Как защититься от веб‑скрейпинга

Есть несколько способов. Чаще всего их используют вместе:

  • Анализировать поведение посетителей сайта

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

Когда попытки доступа к сайту определены как принадлежащие боту, они блокируются.

  • Проверять IP

IP‑адрес — уникальный адрес конкретного компьютера (как номер телефона). Сайты хранят информацию об IP‑адресах, с которых к ним обращались.

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

  • Проверять HTTP‑заголовки

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

  • Давать на выполнение прогрессивные задачи

Такие задачи предлагают выполнить пользователям, которые заходят с подозрительного IP‑адреса.

Самый простой пример — CAPTCHA (капча — «найдите все светофоры на картинке» и прочие). Боты не умеют её проходить, потому что для выполнения такой задачи нужно подключить логику или совершить осмысленные действия, что подвластно только человеку.

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

Внедрить reCAPTCHA от Google по пошаговой инструкции

Как безопасно извлекать данные с сайта

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

Вот как это сделать (можно использовать один способ, комбинировать несколько или задействовать все сразу):

  • Установить корректный User‑Agent

При посещении сайта клиентское приложение — браузер — посылает серверу информацию о себе, которая начинается со строки User‑agent:’. Там содержится информация о приложении, его версии, ОС компьютера и языке.

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

  • Добавить в код referer

О нём мы писали выше. Укажите в HTTP‑заголовке запроса, с какого сайта вы пришли, чтобы вас пропустили. Вот как это выглядит:

Referer: https://www.mysite.ru/

  • Подключить программу для решения прогрессивных задач (CAPTCHA)

Например, 2Captcha. Сервис платный — от 44 рублей за 1 000 решённых задач, подключается через API.

  • Задать случайные интервалы между запросами к сайту

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

  • Использовать прокси

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

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

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

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

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

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

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

Бесплатное расширение для Chrome. Можно собирать разные типы данных и экспортировать их в CSV, XLS или JSON.

Сервис с бесплатным тарифом для небольших проектов; для более сложных — от 75 долларов в месяц. Позволяет скачивать данные и хранить их в облаке, работает на Mac и Windows.

Обеспечивает ротацию IP и проходит CAPTCHA. Есть демоверсия — её нужно запросить на сайте.

Десктопная программа. Выберите данные, которые нужно собирать, и ждите. Данные можно выгрузить в формате JSON, Excel и API.

Бесплатно можно получить 200 страниц с данными. Платные тарифы начинаются от 189 долларов в месяц.

Сервис позволяет скрейпить одновременно несколько типов данных, формируя их в задачи и выполняя поочерёдно. Можно сделать шаблон для быстрого сбора однотипных данных. Есть 30‑дневный бесплатный пробный период.

Сервис скрейпинга сайтов и соцсетей. Для каждого типа данных — например, сырого HTML, информации с сайтов недвижимости или торговли — предоставляются разные API, они специализированы для определенного сектора.

Например, API для скрейпинга сырого HTML извлекает HTML‑код страниц. API для ритейла позволяет просматривать страницы товаров и извлекать цены, описания и прочее. API для недвижимости даёт возможность просматривать площадь, местоположения, цены.

Задачи в приложении оплачиваются кредитами — в бесплатной версии у вас будет 100 кредитов. Когда они закончатся, придётся заплатить от 39 евро в месяц за 100 000 кредитов.

Как и предыдущий, этот сервис предоставляет для скачивания API для скрейпинга. 1 000 запросов — бесплатно, платные тарифы — от 20 долларов в месяц.

Здесь решения создаются под каждый конкретный бизнес. Стоимость — от 40 долларов в месяц за один сайт.

Как в Datahut, здесь вам подберут персональное решение. Datamam, например, обойдется в 5 000+ долларов за полноценный сбор данных.

Выводы

  1. Веб‑скрейпинг — это автоматизированный сбор данных сайтов. Парсинг — это часть веб‑скрейпинга, процесс приведения собранных данных в читаемый вид.

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

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

  4. Чтобы защититься от скрейпинга данных, требуется анализировать поведение пользователей, проверять IP, HTTP‑заголовки запросов, ставить CAPTCHA.

  5. Чтобы пройти через защиты сайтов, нужно установить корректный User Agent, добавить в заголовок запроса referer, установить интервалы между запросами к сайту, использовать прокси для изменения IP‑адреса и подключить программу прохождения CAPTCHA.

  6. Для обхода защиты используют специальные сервисы. Это может быть веб‑приложение или десктопная программа, а ещё есть компании, которые занимаются скрейпингом на заказ.

У нас ещё много полезных статей

Как анализировать видимость сайта в поисковых системах

57 бесплатных инструментов для SEO‑специалиста

Приёмы линкбилдинга и получения ссылок