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

Защита от парсинга - эффективные методы

Можно ли что-нибудь предпринять

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

  • Можно, конечно, применить JavaScript, чтобы контент на страницах генерировался каждый раз заново и притом разными функциями, непредсказуемым образом.
  • Можно отслеживать всю активность посетителя, и если она становится подозрительной, блокировать его по IP-адресу. Исключения делать для поисковых роботов.
  • Можно устроить программное добавление в вёрстку сайта разных элементов случайным образом, или менять вёрстку «на лету».
  • Наконец, можно сделать распознавание поисковых роботов и показывать им один контент, а посетителям – другой. Но это наказуемый метод оптимизации, за что поисковики могут сайт просто забанить.

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

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

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

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

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

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

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

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

Использование JavaScript для генерации страниц, когда контент строится браузером «на лету» с помощью раздельных скриптов, которые обфусцированы и загружаются отдельно. Но ведь в браузере страница уже видна нормально, поэтому парсер может просмотреть её уже в готовом виде в окне браузера. Там же он может просмотреть и сгенерированный код страницы. Бывают парсеры в виде расширений для браузера, для которых это совсем просто.

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

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

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

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

Рубрики: Блог