Скроллинг выдаёт ботов: Burstiness и Memory отличают людей от скрейперов с точностью 73,4%
Detecting scraper bots through scroll behaviour

Исследователь Ники проанализировал поведение при скроллинге и обнаружил, что люди скроллят «взрывными» паттернами, в отличие от ботов. Используя коэффициенты Burstiness и Memory, он обучил модель LightGBM, которая с точностью 73,4% классифицирует взаимодействия человека и агентов ИИ. Метод эффективен на сайтах с прокруткой, но требует дополнительных признаков для повышения точности.
Скроллинг — это поведение, которое, как я считаю, боты не смогут легко имитировать.
- xp84
Любопытно, дойдём ли мы до момента, когда некоторые сайты захотят быть максимально дружелюбными к ботам (надеюсь, они просто перейдут на адекватные публичные API с ограничением частоты запросов, чтобы все экономили время и трафик), а остальные — наоборот.
Если ты предоставляешь услугу, и ИИ-агенты действительно взлетят до того, что люди будут говорить: «Клод, купи мне новый шланг для душа длиной около 5 футов, щётка никель. Используй мои обычные критерии оценки и не трать больше 20 долларов», — то многие интернет-магазины будут очень и очень заинтересованы в дружелюбии к ботам.
И конечно, каждый «контентный» сайт — наоборот, не хочет тратить свой трафик и надеется заключить эксклюзивные платные сделки с любой организацией, которая захочет их скрейпить.
- bryanrasmussen
Ну, забавно, но когда я писал своего бота для конкретной платформы, я делал много всего этого, потому что был параноиком и не хотел, чтобы меня заблокировали. Вот что я делал:
обнаруживал все элементы на текущей загруженной странице, с которыми хочу взаимодействовать. Элемент, по которому хочу кликнуть. Прокручивал к элементу, по которому хочу кликнуть. Случайное действие прокрутки вьюпорта: чуть прокрутить за пределы вьюпорта, прокрутить обратно вверх, определить позицию мыши, где я буду кликать — x, y центр кликабельного элемента, определить x, y ограничивающей рамки кликабельного элемента, выбрать какую-то точку внутри рамки, где можно кликнуть, с некоторой случайностью для попадания в центр, потому что очевидно, что люди не попадают точно в центр каждый раз, не так ли? Установить случайную скорость движения мыши. Функция «рваности» мыши (определить несколько координат x, y на пути к x, y, куда ты на самом деле будешь кликать, двигаться к каждой по очереди со случайной скоростью мыши, чтобы никто не мог сказать: «Хм, эта мышь движется к месту клика неестественно прямо и неестественно плавно»). Добраться до места, где я буду кликать. Подождать случайное время перед кликом. Кликнуть.
Если я не получаю постоянно новые элементы для клика по моим критериям только этим методом, теперь мне нужно прокрутить, чтобы увидеть, могу ли я обнаружить новые.
Случайное количество прокруток. Случайная скорость прокрутки. Случайное расстояние прокрутки.
Начать прокрутку. Достигнуть расстояния прокрутки, остановиться. Случайная прокрутка вверх-вниз.
Моя цель автоматизации заключалась не в том, чтобы мой бот мог выполнять работу сотен людей. А в том, чтобы выполнять работу…
- ventana
Это здорово!
Я экспериментировал с трафиком Google Ads на одном из сайтов, который мне был важен, и даже просто взглянув на наличие событий движения мыши и прокрутки, не говоря уже о паттернах, я понял, сколько ботов или пользователей, которые просто (случайно) кликнули по объявлению и не совершили никаких действий на моём сайте, учитывались как платные клики в Google Ads. Анализ паттернов, как в этой статье, был бы ещё более осмысленным.