У нас есть база данных с возможностью поиска (БД), мы ограничиваем количество результатов до 15 на страницу, и только 100 результатов, но люди все равно пытаются царапать сайт.
Мы запрещаем сайты, которые попадают в него достаточно быстро. Мне было интересно, можем ли мы что-нибудь еще сделать. Возможно, Flash отобразит результаты?
Поскольку очевидно, что ваша база данных пользуется спросом, думали ли вы о том, чтобы развернуть ее и предоставить то, что нужно парсерам? Установить деловые связи со скреперами и поощрять соответствующее использование API?
Есть хорошая информация в Как сделать так, чтобы сценаристы не хлопали ваш сайт сотни раз в секунду?
Вы можете немного усложнить задачу, получая записи через AJAX и используя идентификатор аутентификации (например, ключ API) для вызовов AJAX.
Конечно, вы можете обойти это, прочитав идентификатор, а затем сделав запрос AJAX, используя его.
Как вы указываете, рендеринг с помощью Flash является альтернативой (хотя и не на 100% не поддающейся обработке), как рендеринг в PDF.
Здесь нет технологический решение, чтобы помешать мотивированным лицам очистить ваш общедоступный контент.
Однако вы можете законно защитить вашу интеллектуальную собственность:
Как насчет настройки аутентификации (и, возможно, капчи), отслеживания использования и ограничения доступа к определенному количеству записей или поисков за определенный период времени?
Вы, вероятно, обнаружите, что скребки улучшат свое качество, если вы примените различные методы. Возможно, есть способ проанализировать поведение пользователей, которые соскабливают и вводят капчу или другое нарушение? Возможно, вы могли бы ограничить результаты меньшим числом на определенный период времени, чтобы скребки ожидали 10 дней. Если они не заходят в систему в промежутке, то считать, что они мошенники?
Что бы вы ни делали, не забывайте смешивать свои техники, чтобы продлить им жизнь.
Вы должны учитывать, что парсеры могут не использовать ваши веб-страницы и формы, они могут просто вызывать ваш сайт на уровне http.
Я думаю, что лучшим решением было бы подбросить ловушку после того, как ip-адрес запрашивает больше определенного порога запроса.
Однако вы должны быть ОЧЕНЬ осторожны, чтобы не повлиять на масштабируемость вашего приложения для реальных пользователей.
Ограничение количества данных на странице, как вы описываете в вопросе, только увеличит количество запросов, которые клиенты будут делать к вашему серверу.