Промышленные защиты от парсинга — DataDome, Cloudflare Bot Management, PerimeterX, Akamai Bot Manager — анализируют поведение пользователей по десяткам сигналов: от отклонения WebGL-рендеринга до микротаймингов между кликами. Каждая система использует собственные ML-модели, которые обновляются еженедельно. Недавно мы решили задачу для клиента из e-commerce: нужно было парсить каталог конкурента, защищённый DataDome и reCAPTCHA v3. Мы применили ротацию резидентных прокси, доработанный Playwright с маскировкой 30+ сигнатур и кастомный CAPTCHA-солвер — стабильность составила 97% при 500 тыс. страниц в сутки. Такие результаты требуют глубокого понимания конкретной защиты и комбинирования нескольких техник. Мы реализуем обход под ключ: от базового stealth до полной системы с мониторингом за 12–18 дней. Обращайтесь — оценим ваш проект.
В этой статье разберём основные типы защит, методы обхода rate limiting и CAPTCHA, организацию прокси-инфраструктуры и способы поддержания стабильности при смене алгоритмов. Подобный результат требует постоянного мониторинга и адаптации — мы включаем это в поддержку.
Как защиты классифицируются и что с этим делать?
Уровень 1 — Rate limiting. Простая защита по IP: более N запросов в секунду → блокировка. Решается прокси-ротацией и снижением частоты запросов.
Уровень 2 — Fingerprinting браузера. Проверка navigator.webdriver, canvas fingerprint, WebGL рендеринг, аудио контекст, список плагинов. Детектирует headless-браузеры без маскировки.
Уровень 3 — Поведенческий анализ. ML-модели на стороне защиты: паттерны движения мыши, тайминги между действиями, порядок событий. Отличает бота от человека даже при правильном fingerprint.
Уровень 4 — CAPTCHA. Визуальные или поведенческие задачи. Google reCAPTCHA v2/v3, hCaptcha, Arkose Labs (FunCaptcha), Cloudflare Turnstile.
Мы работали с каждой из этих защит на десятках проектов. Наш опыт — 5+ лет на рынке и 30+ успешных интеграций. Гарантируем стабильность парсинга даже при обновлении алгоритмов защиты. На практике чаще всего встречается комбинация нескольких уровней, например, Cloudflare Bot Management + reCAPTCHA v3.
Обход rate limiting
import asyncio import random from aiohttp import ClientSession async def fetch_with_delay(session, url, semaphore): async with semaphore: await asyncio.sleep(2 + random.gauss(1, 0.5)) # нормальное распределение async with session.get(url) as resp: return await resp.text() semaphore = asyncio.Semaphore(3) # максимум 3 одновременных запроса Случайные задержки с нормальным распределением значительно эффективнее фиксированных: паттерн ближе к человеческому.
Stealth для Playwright
const { chromium } = require('playwright'); const { stealth } = require('playwright-stealth'); const browser = await chromium.launch({ args: [ '--disable-blink-features=AutomationControlled', '--no-sandbox', ] }); const context = await browser.newContext({ userAgent: getRandomUserAgent(), locale: 'ru-RU', timezoneId: 'Europe/Moscow', geolocation: { longitude: 37.6173, latitude: 55.7558 }, permissions: ['geolocation'], }); await stealth(context); playwright-stealth патчит более 30 детектируемых полей: navigator.webdriver, window.chrome, navigator.languages, canvas noise и другие. Использование stealth-режима обязательно для сайтов с поведенческим анализом.
Почему качество прокси критично для парсинга?
Защиты анализируют чистоту IP и его поведение. Резидентные прокси (Bright Data, Oxylabs) — реальные IP домашних пользователей, практически не блокируются. Мобильные прокси (4G/5G) имеют высокий trust score. Дата-центр IP (AWS, DigitalOcean) часто в чёрных списках и не подходят для сложных защит. Для крупных проектов окупается использование резидентных IP — цена ошибки при блокировке высока.
class ProxyRotator: def __init__(self, proxies: list): self.proxies = proxies self.stats = {p: {'success': 0, 'fail': 0} for p in proxies} def get_best_proxy(self): # выбираем прокси с наибольшим процентом успеха return max( self.proxies, key=lambda p: self.stats[p]['success'] / max(self.stats[p]['success'] + self.stats[p]['fail'], 1) ) def report_success(self, proxy): self.stats[proxy]['success'] += 1 def report_fail(self, proxy): self.stats[proxy]['fail'] += 1 Как обойти CAPTCHA без риска блокировки?
Автоматическое решение через сервисы: 2captcha, Anti-Captcha, CapSolver, NopeCHA. Для CAPTCHA v2/v3 используются токены от сервисов. Для reCAPTCHA v3 нужен высокий score, что достигается качественным профилем браузера. (Google reCAPTCHA documentation)
from twocaptcha import TwoCaptcha solver = TwoCaptcha(API_KEY) # reCAPTCHA v2 result = solver.recaptcha( sitekey='6LfXXXXXXXXXXXXXXXXXXXXX', url='https://example.com/page' ) token = result['code'] # вставляем в форму Работа с куками и сессиями
Сессионные куки — важный сигнал для защит. Бот, который не накапливает куки через несколько страниц, выглядит подозрительно.
# Сохранение и восстановление контекста Playwright await context.storage_state(path='session.json') # В следующем запуске context = await browser.new_context(storage_state='session.json') Для сложных сайтов: сначала «греем» сессию — посещаем главную, пару случайных страниц, имитируем скролл — затем переходим к целевым URL.
Обнаружение смены алгоритма защиты
Защиты обновляют алгоритмы. Нужен мониторинг:
- Трекинг HTTP-статусов: рост 403/429/503 → триггер проверки
- Сравнение fingerprint-запросов (JavaScript, который загружает DataDome)
- Алерты при падении процента успешных парсингов ниже порога
Типичные ошибки при обходе защиты
- Использование одинакового User-Agent для всех запросов
- Фиксированные задержки вместо случайных
- Игнорирование кук и сессий
- Использование дешёвых дата-центр прокси для сложных защит
- Отсутствие мониторинга и реактивации при блокировке
Что входит в нашу работу
- Анализ целевого сайта и определение типа защиты
- Разработка и настройка обхода (stealth, прокси, CAPTCHA)
- Интеграция с вашим парсером (API, SDK)
- Мониторинг стабильности и автоматическая адаптация
- Документация и обучение вашей команды
Сроки
Базовый обход rate limiting + stealth: 3–5 дней. Полная система с CAPTCHA-солвером, прокси-ротатором и мониторингом: 12–18 дней.
Свяжитесь с нами для консультации — оценим ваш проект и предложим оптимальное решение.







