- также опубликовано вimweb.io
1. Введение
Мы часто хотим, чтобы веб-страница была хорошо структурирована и содержала ясное содержание, чтобы поисковые системы могли ее точно распознать.
С другой стороны, есть некоторые сценарии, где мы не хотим, чтобы содержание было легко получено, например, объем транзакции веб-сайтов электронной коммерции, названия образовательных веб-сайтов и т. Д. Поскольку эти содержимое часто являются жизненным слоем продукта, они должны быть эффективно защищены. ЭтоРекламка с анти-рептилемпроисхождение этой темы.
2. Общие стратегии борьбы с рептилиями
Но в мире нет ни одного веб-сайта, который мог бы быть идеально антисканером.
Если страница должна нормально отображаться перед пользователями, не давая шанса сканерам, она должна быть в состоянии идентифицировать реальных людей и роботов. Поэтому инженеры предприняли различные попытки, и большинство из этих стратегий используются взадняя часть, также является относительно обычным одноэффективным средством, таким как:
- Обнаружение User-Agent + Referer
- Проверка учетной записи и файлов cookie
- проверяющий код
- Частота ограничения IP
А рептилии могут быть бесконечно близки к реальным людям, например:
- chrome headless или phantomjs для имитации среды браузера
- tesseractОпределить код подтверждения
- Агент IP Taobao можно купить
Итак, мы говорим, 100% стратегия против сканирования? несуществующий.
Это больше физическая активность, и это вопрос сложности.
Однако, как фронтенд-инженеры, мы можем увеличить сложность игры и разработать некоторыеОчень (санг) с (син) смыслом (бинг) мышление (гуан)стратегия борьбы с рептилиями.
3. Фронтенд и антикраулеры
3.1 Пэчворк Font-Face
пример:кошачий глаз фильм
В фильмах Маояня данные о кассовых сборах — это не просто цифры.
Страница использует font-face для определения набора символов и использует unicode для сопоставления и отображения. То есть, за исключением распознавания изображений, набор символов должен быть просканирован одновременно, чтобы распознавать числа.
Более того, каждый раз, когда страница обновляется, URL-адрес набора символов меняется, что, несомненно, увеличивает стоимость сканирования.
3.2 фоновое пэчворк
пример:Мейтуан
Подобно стратегии шрифта, Meituan использует пэчворк фона. Цифры на самом деле являются картинками, и разные символы отображаются в соответствии с разным смещением фона.
И разные страницы, порядок символов картинок тоже разный. Однако теоретически нужно генерировать только 0-9 и десятичную точку, поэтому я не понимаю, почему повторяются символы.
Страница А:
Страница Б:
3.3 Перемежающиеся символы
пример:Статья публичного аккаунта WeChat
Статьи некоторых официальных аккаунтов WeChat перемежаются различными загадочными персонажами, и эти символы скрыты за счет стилей.
Хотя этот метод шокирует... но на самом деле его не так уж сложно идентифицировать и отфильтровать, и его даже можно сделать лучше, но это тоже своего рода дыра в мозгу.
Кстати, могу ли я получить компенсацию за свои мобильные данные?
3.4 Псевдоэлемент скрыт
пример:автомобиль домой
Дом автомобиля, ключевая информация о производителе помещается в содержание псевдоэлемента.
Это тоже способ мышления: чтобы сканировать веб-страницы, нужно парсить css и получать содержимое псевдоэлементов, что увеличивает сложность краулеров.
3.5 Наложение позиционирования элемента
пример:куда
А куда пойти тем, кто любит математику, для 4-х значной цены билета используйте четыре первыхi
Отрисовка этикетки, используйте еще дваb
Метки переходят к абсолютным смещениям позиционирования, покрывая преднамеренные ошибки отображения.i
Этикетки, окончательно формирующие правильную цену визуально…
Это показывает, что сканер не может анализировать CSS, и ему приходится решать математические задачи.
3.6 асинхронная загрузка iframe
пример:Облачная музыка NetEase
Как только открывается страница NetEase Cloud Music, там почти только один исходный код htmliframe
, а его src пуст:about:blank
. Затем начинает запускаться js, и фрейм всей страницы асинхронно запихивается в iframe...
Однако трудности, связанные с этим методом, не велики, это просто обходной путь в асинхронной и iframe-обработке (или есть другие причины, не полностью основанные на соображениях антисканирования), независимо от того, используете ли вы селен или фантом, есть API-интерфейсы, которые может использоваться для информации о содержимом в iframe.
3.7 Сегментация символов
пример:Прокси IP всей сети
На некоторых страницах, которые отображают информацию об IP-адресе прокси, защита IP также вызывает много хлопот.
Они сначала разобьют номер IP на узел DOM, затем вставят в середину перепутанную цифру.Если краулер не знает этой стратегии, я буду думать, что я успешно получил значение, но если краулер заметил, он очень решен. .
3.8 Замена набора символов
пример:куда пойти мобильная сторона
Мобильная версия Qunar также обманет поисковый робот.
3211 четко написано в html, но 1233 отображается визуально. Оказывается, они переопределили набор символов, и порядок 3 и 1 просто поменял местами результат...