Что такое Веб-скрейпинг
Краткое содержание
- Веб-скрейпинг – это деятельность по автоматическому сбору данных с веб-сайтов (и web API)
- Скрейпинг может быть условно хорошим и плохим
- Скрейпинг может быть условно законным и не законным
- Законность зависит от юрисдикции
- Бороться со скрейпингом очень сложно, но не невозможно
- Простые методы защиты не работают, боты хорошо эмулируют человека
- Сложные методы сложны
Определения
Веб-скрейпинг – это процесс использования ботов для извлечения данных с веб-сайтов.
В контексте этой статьи бот – это программа на любом языке программирования, логика работы которой нацелена на получение данных с веб сайтов. Это может быть консольное приложение, настольное приложение с интерфейсом, веб-приложение на сервере, любая другая форма. Но мы для простоты используем термин бот, не теряя при этом никаких деталей.
Задача бота – получить HTML-код страницы сайта, на которой содержится интересующая его информация. Получив код, скрейпер разбирает его, вычленяя нужные данные. Таким образом, потенциально бот может открыть все возможные страницы вашего сайта и получить всю информацию, которая есть у вас в базе данных.
Есть законный скейпинг, есть незаконный. Лучше использовать термины хороший и плохой, так как вопрос законности этих практик зависит от юрисдикции.
Хороший скрейпинг
- Боты поисковых систем, которые просматривают сайт, анализируют его содержание и затем индексируют его;
- Сайты сравнения цен, задействующие ботов для автоматического извлечения цен и описаний продуктов для сайтов похожих продавцов;
- Компании, занимающиеся маркетинговыми исследованиями, используют скрейперы для извлечения данных с форумов и социальных сетей (например, для анализа эмоциональной окраски сообщений).
Плохой скрейпинг
- Анализ цен конкурентов и ценовой демпинг;
- Кража контента. Например, вручную создаваемая база данных, в которую вложено много труда может быть украдена скрейперами.
Инструменты для скрейпинга
Cкрейпинг-боты – это программы, заточенные на извлечение информации с веб-страниц.
Основные задачи бота:
- Получить HTML-код страницы сайта. Это не всегда просто сделать;
- Извлечь и очистить интересующие данные из HTML;
- Сохранить данные в БД.
Как отличить хорошего бота от плохого
Поскольку и хорошие и плохие скрейпинг-боты имеют одну и ту же цель – получить данные с сайта, на практике сложно отличить полезных ботов от вредоносных.
Частично можно ориентироваться по следующим признакам:
- Хороший бот идентифицируется с организацией, которая его использует. Например, Googlebot идентифицирует себя в HTTP-заголовке как принадлежащий Google. Вредоносные боты, наоборот, выдают себя за настоящий (человеческий) трафик, имитирую браузер на уровне HTTP-заголовков;
- Хорошие боты следуют правилам из файла robot.txt сайта, в котором перечислены те страницы, к которым боту разрешен доступ, и те, к которым нет. Вредоносные скрейперы игнорируют эти правила и обходят все страницы, которые могут найти.
Ресурсоёмкость скрейпинга
Сбор большого количества данных требует соответствующей вычислительной мощности и места для хранения данных. На бытовом уровне сложно даже представить, какие ресурсы требуются поисковым сервисам для выполнения их работы.
Злоумышленники, не имея такого бюджета, часто прибегают к использованию ботнетов – географически рассредоточенных компьютеров, зараженных вредоносным ПО, которое позволяет управлять ими извне. Отдельные владельцы компьютеров ботнета не знают о своём участии в схеме. Совокупная мощность зараженных машин позволяет злоумышленнику выполнять масштабный скрейпинг веб-сайтов.
Так как каждая машина в ботнете обладает уникальным IP адресом, владельцам сайтов, подвергающимся скрейпинг-атаке сложно идентифицировать её как таковую. Когда атака идёт с одного или небольшого количества серверов, обращения с их IP адресов можно заблокировать, отследив большое количество обращений (чего не происходит при естественном посещении сайта человеком).
Примеры вредоносного скрейпинга
Веб-скрейпинг считается вредоносным, если данные извлекаются без разрешения владельцев веб-сайтов. Два наиболее распространенных варианта использования – это скрейпинг цен и кража контента.
Скрейпинг цен
При скрейпинге цен злоумышленник обычно использует ботнет, из которого запускает скрейпинг-ботов для получения (опосредовано, через веб-страницы) баз данных цен конкурирующих компаний. Цель состоит в том, чтобы на основе полученных данных о конкурентах быстро корректировать свои цены, оставаясь таким образом лучшим предложением по цене.
Атаки часто происходят в отраслях, где товары легко сопоставимы, а цена играет важную роль при принятии решения о покупке. Жертвами скрейпинга цен могут быть туристические агентства, продавцы билетов и онлайн-продавцы электроники.
Например, частыми целями становятся онлайн продавцы смартфонов, которые продают аналогичные товары по относительно стабильным ценам. Чтобы оставаться конкурентоспособными, они должны предлагать самые низкие цены, поскольку покупатели ориентируются в основном на неё. Чтобы получить преимущество, продавец может использовать бота, который постоянно анализирует веб-сайты конкурентов и мгновенно корректирует свои цены.
Скрейпинг контента
Скрейпинг контента включает в себя крупномасштабную кражу контента сайта.
Например, местные бизнес-каталоги в интернете вкладывают много времени, денег и энергии в создание и поддержание своих баз данных. Скрейпинг может привести к тому, что все это попадет в открытый доступ, будет использовано в рассылке спама или перепродано конкурентам. Такие действия могут быть разрушительными для бизнеса владельцев данных.
Защита от скрейпинга
Простейшие методы защиты, такие как анализ заголовков http-запроса давно не работают. Так называемые безголовые (без пользовательского интерфейса, работающие исключительно в памяти компьютера) браузеры позволяют ботам полностью эмулировать поведение реального человека.
Чтобы противостоять вредоносным ботам, применяют детальный анализ входящего трафика.
Компании, занимающиеся защитой от скрэйпинга, используют следующие стратегии:
- Отпечаток HTML. Ведение базы данных HTML заголовков запросов, которые были опознаны, как вредоносные и проверка запросов об эту базу данных.
- Репутация IP. Сбор информации об IP адресах, с которых когда либо проводились атаки на клиентов. Посещения с IP-адресов, которые в прошлом использовались в атаках, рассматриваются с подозрением и пристально изучаются при новых обращениях.
- Анализ поведения. Отслеживание способов взаимодействия посетителей с веб-сайтом может выявить аномальные поведенческие модели, такие как подозрительно агрессивный уровень запросов и нелогичные модели просмотра. Это помогает идентифицировать ботов, которые выдают себя за посетителей.
- Прогрессивные задачи. Набор логики на клиентской стороне (в браузере), которая позволяет отличить бота от человека. Примером такой задачи является CAPTCHA.
Постоянная ссылка