Промышленные защиты от парсинга — 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 дней.
Свяжитесь с нами для консультации — оценим ваш проект и предложим оптимальное решение.







