Реализация обхода защиты от парсинга (CAPTCHA, rate limiting)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Реализация обхода защиты от парсинга (CAPTCHA, rate limiting)
Сложная
~3-5 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Реализация обхода защиты от парсинга (CAPTCHA, rate limiting)

Промышленные защиты от парсинга — DataDome, Cloudflare Bot Management, PerimeterX, Akamai Bot Manager — анализируют поведение пользователей по десяткам сигналов одновременно. Обход требует понимания конкретной системы защиты и применения нескольких техник в связке.

Классификация защит

Уровень 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.

Обход 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 и другие.

Решение CAPTCHA

Автоматическое решение через сервисы:

Сервис Тип CAPTCHA Время Модель
2captcha reCAPTCHA v2/v3, hCaptcha, Turnstile 5–30 сек Люди
Anti-Captcha reCAPTCHA v2/v3, ImageToText 7–15 сек Люди
CapSolver reCAPTCHA v3, Arkose Labs 1–3 сек AI
NopeCHA hCaptcha, reCAPTCHA 2–10 сек AI
from twocaptcha import TwoCaptcha

solver = TwoCaptcha(API_KEY)

# reCAPTCHA v2
result = solver.recaptcha(
    sitekey='6LfXXXXXXXXXXXXXXXXXXXXX',
    url='https://example.com/page'
)
token = result['code']  # вставляем в форму

Для reCAPTCHA v3 нужен токен с высоким score. CapSolver специализируется именно на этом.

Прокси-инфраструктура

Качество прокси критично. Иерархия по эффективности:

  1. Резидентные прокси (Bright Data, Oxylabs, Smartproxy) — реальные IP домашних пользователей. Самые дорогие, но практически не блокируются
  2. Мобильные прокси — 4G/5G IP операторов. Высокий trust score, дешевле резидентных
  3. ISP прокси (статические резидентные) — постоянный IP провайдера
  4. Дата-центр прокси — дешёвые, но легко блокируются серьёзными защитами
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

Работа с куками и сессиями

Сессионные куки — важный сигнал для защит. Бот, который не накапливает куки через несколько страниц, выглядит подозрительно.

# Сохранение и восстановление контекста 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)
  • Алерты при падении процента успешных парсингов ниже порога

Сроки

Базовый обход rate limiting + stealth: 3–5 дней. Полная система с CAPTCHA-солвером, прокси-ротатором и мониторингом: 12–18 дней.