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

Опубликовано: понедельник, 15 апреля 2024 г., Alex Zimin, время чтения: 7 мин.

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

Парсинг сайтов

Причины парсинга сайтов

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

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

Способы парсинга сайтов

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

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

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

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

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

Методы защиты сайта от парсинга

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

Проверка HTTP заголовков

Когда реальные люди заходят на ваш сайт, они используют специальную программу - браузер. Наиболее популярные браузеры сегодня, это Google Chrome, Firefox, Opera, Яндекс.Браузер, Microsoft Edge. Каждый браузер при отправке запросов к вам на сайт, отправляет специальные заголовки, в которых указывает информацию о названии версии браузера. Также и поисковые роботы Google и Яндекс отправляют свои заголовки, чтобы их можно было идентифицировать.

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

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

Ограничение частоты запросов (Rate Limiting)

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

Многие популярные сервера, например Nginx, имеют готовые плагины для ограничения частоты запросов. Вы можете задать максимальную частоту запросов с одного IP адреса к вашему сайту, например, не более 100 запросов в минуту. При достижении заданной частоты запросов, ваш сервер начнет либо существенно увеличивать время ответа для пользователя либо вовсе возвращать ошибку. Другими словами, как только робот начнет с большой скоростью открывать подряд много страниц вашего сайта, доступ к сайту для него будет ограничен.

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

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

Блокировка по IP адресу

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

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

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

Блокировка по стране

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

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

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

Использование CAPTCHA и других тестов на человечность

Вы можете попробовать защититься от парсинга, попросив вашего программиста добавить вам на сайт тесты на человечность, так называемую “капчу” (captcha). При определенном количестве запросов к вашему сайту, отображается страница, на которой пользователя просят ввести текст на картинке или другую информацию, чтобы подтвердить что он человек. После проверки на человечность, доступ к сайту открывается, до тех пор пока снова не будет достигнуто определенное количество запросов.

Пользователи не любят капчу

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

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

Изменение структуры HTML и CSS регулярно

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

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

Динамическая загрузка контента через JavaScript

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

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

Выводы

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

 

👋 Оставайтесь на связи

Подпишитесь на новости от Shop Manager и мы сообщим о выходе новых статей либо пришлем интересную аналитику (не более 1 письма в месяц)

Свяжитесь с нами:

Перезвоните мне:

Отправка...

Сообщение отправлено, спасибо!