Каковы хорошие методы, которые не позволяют скребкам экрана захватывать определенные части контента с моего сайта? - PullRequest
3 голосов
/ 26 сентября 2008

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

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

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

Хм. Кто-нибудь еще разработал какие-нибудь хорошие методы для того, чтобы сделать что-то подобное?

Ответы [ 9 ]

6 голосов
/ 26 сентября 2008

Учтите, что все, что скребок не может прочитать, поисковые системы тоже не могут прочитать. С учетом вышесказанного, вы можете добавить контент в ваш документ через Javascript после загрузки страницы.

4 голосов
/ 26 сентября 2008

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

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

Любое решение, которое вы придумаете, будет анти-сетевым. Интернет - это разделение, и вы должны брать плохое с хорошим.

Если вам нужно что-то сделать, вы можете просто использовать Flash. Я еще не видел, чтобы фермеры ссылок захватывали Flash-контент. Но по всем причинам, изложенным в первом абзаце, Flash - это анти-сеть.

3 голосов
/ 26 сентября 2008

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

Все текстовые телевизионные записи похожи ps10825('4VUknMERbnt0OAP3klgpmjs....abd26'), где ps10825 - это просто функция, которая вызывает их функцию дешифрования с помощью клавиши ps10825. Очевидно, ключ генерируется каждый раз.

В этом случае я думаю, что вполне достаточно остановить 99% людей, использующих Greasemonkey или даже сценарии wget, для загрузки своего телегида, не видя всех своих объявлений.

3 голосов
/ 26 сентября 2008

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

1 голос
/ 17 августа 2009

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

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

0 голосов
/ 26 августа 2009

Немногие из этих приемов остановят решимость. Алекса в стиле мусора-HTML / CSS-маскирования легко обойти (просто разобрать CSS); AJAX / Javascript-DOM-вставка также легко обойти, хотя токены подлинности форм делают это сложнее.

Я считаю, что предоставление официального API является лучшим сдерживающим фактором:)

Если исключить, что рендеринг текста в изображение - это хороший способ остановить случайный скребок (но также выполнимо)

YouTube также использует обфускацию javascript, которая усложняет реверс-инжиниринг AJAX

0 голосов
/ 19 ноября 2008

Alexa.com делает некоторые дурацкие вещи, чтобы предотвратить соскоб. Иди сюда и посмотри на номер трафика http://www.alexa.com/data/details/traffic_details/teenormous.com

0 голосов
/ 26 сентября 2008

Отобразите весь ваш текст в SVG , используя что-то вроде ImageMagick

0 голосов
/ 26 сентября 2008

Просто загрузите весь ваш HTML через вызовы AJAX, и HTML не будет «отображаться» в DOM для большинства скребков экрана.

...