Реферальная программа →
ГлавнаяГлоссарийHoneypot-ловушка
Глоссарий

Honeypot-ловушка

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

Honeypot-ловушка - это элемент, который сайт размещает специально, чтобы ловить ботов. Он невидим или недоступен для реальных пользователей - ссылка, скрытая через CSS, поле формы за пределами экрана или страница, на которую ведут только так, как человек никогда бы не пошёл. Раз человек её никогда не видит, любой клиент, взаимодействующий с ней, почти наверняка автоматизирован.

Классический пример - скрытая ссылка в HTML, оформленная через display:none или уведённая далеко за видимую область. Человек при обычном сёрфинге никогда на неё не кликает, но наивный скрапер, идущий по каждой ссылке в DOM, кликнет - и в момент, когда он запросит этот URL, сайт помечает IP или сессию как бота и блокирует.

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

Избегать honeypot - значит скрапить так, как страницу воспринял бы человек: уважайте видимость CSS, не идите слепо по каждой ссылке и не заполняйте каждое поле, рендерьте страницу (или рассуждайте о стилях), чтобы отличать, что пользователь реально увидел бы и тронул. В сочетании с прокси для ротации IP аккуратная логика взаимодействия держит вас вне ловушек.

Приманка, которую берёт только машина

Ханипот в этом контексте это содержимое, размещённое на странице специально для отлова автоматизации. Классика жанра это ссылка, спрятанная стилями: человек её не видит, а парсер, читающий DOM, видит прекрасно. Переход по ней означает, что вы машина.

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

Часть сайтов идёт дальше и отдаёт подозрительным клиентам отравленные данные: правдоподобные, но неверные цены, выдуманные позиции, слегка изменённые числа. Это опаснее блокировки, потому что портит датасет, пока мониторинг рапортует об успехе.

Как не наступать на очевидное

Большинство ханипотов обходятся тем, что вы ведёте себя как рендерер, а не как парсер:

Что проверить перед переходом по ссылке

display: none        пропустить
visibility: hidden   пропустить
opacity: 0           пропустить
height/width: 0      пропустить
позиция за экраном   пропустить
странная ссылка с rel="nofollow"   отнестись с подозрением
  • В headless-браузере проверяйте вычисленную видимость, а не сырой HTML. Одно это изменение снимает большинство ловушек на CSS.
  • Скрытые поля форм не трогайте. Заполняйте только то, что увидел бы человек.
  • Сверяйте выборку собранных данных с ручной загрузкой через адрес другого типа. Отравленные данные видны только в сравнении.
  • Внезапная однородность в датасете, вроде одинаковых цен у несвязанных позиций, стоит проверки до того, как попадёт в отчёт.

Что понимают неправильно

Ханипот это не блокировка

Это метка. Вы можете и дальше получать 200, притом что всё собранное ничего не стоит.

Ротация адресов не помогает

Ловушка срабатывает на поведение, и каждый новый адрес заходит в неё одинаково.

Строки в robots.txt это не ханипоты по умолчанию

Часть запрещённых путей действительно ловушки, но большинство просто не предназначено для краулеров.

Не всякий скрытый элемент это приманка

Модалки, меню и ленивый контент скрыты по обычным причинам. Судите по тому, мог ли человек до этого добраться.

Смотри на практике

Готов использовать honeypot-ловушка?

SotaProxy даёт доступ к ротирующим резидентским, мобильным, дата-центр и ISP прокси. Без минимальных платежей.

Начать