zhdoon
@zhdoon
Директор музея

Как защититься от парсельщиков?

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

Существуют ли действенные методы для борьбы с парсерами?
  • Вопрос задан
  • 1438 просмотров
Пригласить эксперта
Ответы на вопрос 9
zoonman
@zoonman
CEO @ LinuxQuestions.ru
Существует несколько способов борьбы.

Вектор усложнения доступа к информации

Информация отдается с сервера с постоянной меняющейся структурой. Например блоки меняются местами и CSS генерируется налету, причем классы собираются рандомной цепочкой и имеют абсолютно рандомные названия. Это может повлиять на SEO.
Если этого мало, то контент рендерится с помощью JS аналогичными алгоритмами. Сам JS тоже генерируется и обфусцируется. Доставка контента происходит через сложные технологии, например через WebRTC DataChannel или WebSockets. Про SEO не может быть и речи, плохо работает через мобильник.
С подобным подходом прийдется писать парсер под ваш сайт. Скорее всего он будет делать скриншот и скармливать его распознавалке.

Вектор контроля доступа к информации

Доступ к информации предоставляется определенному кругу лиц. Например клиентам. Объемы доступа регламентированы и превышение карается расторжением договора или штрафом.

Вектор ограничения доступа к информации с помощью каптчи

Для идентификации клиентов используются evercookie+fingerprinting. Используется рейтинг адресов и подсетей.
Для недоверенных подсетей (ip принадлежат в основном разного рода хостинг-провайдерам) captcha отображается сразу. Аналогично при появлении трафика из необычного места, например внезапный трафик из Индии или Китая.

Вектор "медленный сервер"

Анализируются поведенческие характеристики с помощью машинного обучения. Строится эталонная модель.
Все, кто не попадает под модель, упираются в медленный сервер. Сайт начинает отдавать контент сразу, но очень медленно, например страница может открываться секунд 30. Причем попытка параллельного запроса приводит к ошибке. Если сайт велик, то подобные штуки останавливают парсильщиков на ура. Вдобавок дополнительно контролируются определенные вещи, вроде "пользователь загрузил js и css", провел мышкой там и там.

Вектор для реального отваживания воришек

Кроме выше перечисленных способов, есть очень простые, но действенные способы. При обнаружении парсинга, парсильщику отдается неверная/искаженная определенным образом информация. Например, если есть подозрение на конкурента ворующего цены, можно отдать цены чуть выше настоящих и немного подменить название товара, например заменить определенным образом букву "а" на "a". Затем такая штука ищется поисковиком и находится сайт конкурента.
Далее вопрос решается так, как это удобно бизнесу. Обычно жалуются на нарушение копирайта. Ну или у конкурента внезапно сгорает склад. Тут уж кто на что горазд.

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

Подытожим. В большинстве случаев защита от парсинга вредит SEO.
Если у вас воруют контент, значит он хороший. Защищайте его с умом. Простые средства вроде копирайта и успешные дела за воровство контента отвадят воришек от вашего сайта. Просто придайте делам огласку. Отслеживайте воровство и жалуйтесь в поисковые системы.
Используйте технические средства для отслеживания воровства, например непечатаемые символы и стеганографию в картинках.
Используйте внутренние ссылки и привязки к контенту и его автору. Например логические отсылки на свои предыдущие работы или другие товары, которые можно купить только у вас.

Если у вас воруют статьи, просто требуйте обратную ссылку.
Если воруют описание товаров, предложите продать его, а на вырученные деньги улучшите свое или увеличите оборот или потратьте их на рекламу.
Еще одна рекомендация - сделайте все, чтобы поисковики узнавали о вашем контенте раньше, чем у воришек.
Ответ написан
edli007
@edli007
full stack, team lead
Есть разные способы усложнить эту задачу, но усложняя задачу парсерам вы ухудшаете читабельность сайта для поисковых машин(они тоже парсеры)

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

Проще сделать платную апи для получения инфы, если ваша инфа реально нужная, многим разрабам будет просто лень писать парсеры и они предложат заказчикам купить апи.
Ответ написан
Qwentor
@Qwentor
Веб-программист
Хз. Капча вида "найди все картинки с автомобилями" для слишком частых запросов?
Ответ написан
@Verz1Lka
Web scraping expert
Используйте готовые средства по типу incapsula или distil networks.
Ответ написан
dimonchik2013
@dimonchik2013
настоящие экстремалы предпочитают жен своих друзей
1) Cloudflare
2) Капча с Fingerprints и логами, для (2) на бекенде должен стоять жрущий ресурсы сервис
Ответ написан
php10
@php10
Разработчик на PHP
При большом желании можно спарсить любой сайт. Так что никак.
Ответ написан
@BashkaMen
C# программист
Можно сделать важный контент картинкой, генерируй ее на беке
Ответ написан
0xcffaedfe
@0xcffaedfe
Developer & Reverser
Простой способ защиты от Парсинга сделать public api!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы