BuntArt

Человеческая симуляция при парсинге: зачем и когда

Антибот-системы видят бота по трём вещам: линейная траектория мыши, одинаковые интервалы между действиями и стерильные паттерны кликов. В этой статье — с живыми симуляциями — разбираем, как имитировать человека, когда дешевле купить прокси, а когда нужен полноценный stealth-парсер.

Траектория мыши: прямая vs живая кривая

Бот двигает курсор по прямой или через простые точки. Человек — по плавной кривой с вариациями скорости, микро-остановками и лёгким дрожанием. Anti-bot (DataDome, PerimeterX) смотрит именно сюда.

Движение от точки A к точке B

Бот — линейная интерполяция Человек — Bezier + шум
Точек в траектории—
Время движения—
Кривизна—
Вероятность детекта—

Распределение задержек между действиями

Бот делает паузу ровно 1000 мс между запросами (или с фиксированным jitter ±50 мс). Человек следует нормальному распределению: большинство действий близко к медиане, но бывают длинные паузы — задумался, отвлёкся.

100 интервалов между действиями

Mean (мс)—
Std Dev—
Энтропия—
Вероятность детекта—

Тепловая карта кликов

Человек кликает на смыслы: кнопки, ссылки, заголовки — со смещением 2–15 пикселей от центра. Бот бьёт либо точно в центр, либо равномерно по странице.

30 кликов на «веб-странице»

На каком запросе сработает защита

Запускаем 10 000 запросов тремя стратегиями. Визуально видно, где и при каком количестве anti-bot начинает возвращать 403/CAPTCHA.

Прогресс парсинга

Только прокси Только симуляция Прокси + симуляция

Калькулятор: что выбрать под вашу задачу

Выбираете объём, тип защиты на сайте и бюджет — получаете рекомендацию и стек.

Объём данных
Тип защиты
Бюджет

Рекомендация

—

Три подхода и когда какой применять

Только прокси

Обычные HTTP-запросы + ротация IP. Быстро, дёшево.

  • Миллионы RPS
  • Минимум CPU/RAM
  • Не работает против JS-защит
  • Тратится бюджет на прокси

Только симуляция

Playwright/Selenium с имитацией поведения. Без доп. IP.

  • Не нужен бюджет на прокси
  • Обходит JS-проверки
  • Низкий RPS (2–10)
  • Не подходит для массового парсинга

Комбо

Headless-браузер + резидентные прокси + имитация. Максимальный stealth.

  • Обходит Cloudflare/DataDome
  • Масштабируется до 50K+ страниц/день
  • Сложная инфраструктура
  • $150–500/мес на резидентные прокси

Что использовать на Python

ИнструментКогда применять
httpx / aiohttpМассовый парсинг без JS-защит
Scrapy + scrapy-playwrightБольшие crawls с редким JS
Playwright (async)Основа stealth-парсера: патчинг webdriver, скрытие automation-признаков
camoufoxФорк Firefox с замаскированными отпечатками
undetected-chromedriverАльтернатива Playwright, если нужен Chrome
Bright Data / IPRoyal / SOAXРезидентные прокси для комбо-стратегии
2captcha / CapSolverАвтоматическое решение капч (hCaptcha, reCAPTCHA v3)
scrapy-rotating-proxiesРотация и healthcheck прокси-пула

Итог

«Неубиваемый» парсер — это не один инструмент, а стек, подобранный под уровень защиты целевого сайта. Для простых задач достаточно httpx + ротация. Для Cloudflare нужен headless-браузер + резидентные прокси + имитация поведения. Для крупных площадок — ещё и капчарешалка. Начинайте с минимально достаточного уровня и повышайте stealth только если блокируют.

Пишите, если хотите обсудить проект или предложить сотрудничество.

Telegram@BuntArt