Вход Регистрация

Прокси

Как обойти Cloudflare в 2026: проверенные методы, которые сработают

Как обойти Cloudflare? Читайте в статье проверенные методы обхода Cloudflare, включая эмуляцию браузера, ротацию прокси, сохранение сессий и обработку CAPTCHA.

Команда Froxy 20 авг. 2026 12 мин
Как обойти Cloudflare в 2026: проверенные методы, которые сработают

Cloudflare стоит перед огромной частью интернета, блокируя автоматизированный трафик и закрывая доступ к контенту. Для разработчиков и дата-аналитиков это означает постоянную борьбу с ошибками 403 Forbidden, бесконечными циклами CAPTCHA и банами по IP.

Можно ли разорвать этот круг и обойти защиту? Безусловно.

В этом руководстве мы покажем методы, которые активно используют для скрапинга и автоматизации без блокировок. Мы разберем всё: от эмуляции браузера до сохранения сессий. Если вы застряли на парсинге сайта или пытаетесь наладить стабильный сбор информации, эти техники помогут решить проблему и начать получать необходимые данные.

Как работает Cloudflare

Как работает Cloudflare

Cloudflare — это гигантская инфраструктура, которая закрывает собой сайты как щит. У них серверы в 330 городах по всему миру, поэтому весь трафик фильтруется на самых подступах, еще до того, как доберется до целевого сервера.

Вся эта махина (edge-сеть) анализирует данные на лету. Она способна переваривать сумасшедшие нагрузки в 321 Тбит/с, успевая проверять запросы за какие-то 50 миллисекунд — обычные пользователи даже ничего не замечают. Именно из-за такой мощи обойти систему «в лоб» не выйдет. Если вы хотите, чтобы ваши скрипты жили долго, придется серьезно заморочиться с подменой цифровых отпечатков (фингерпринтов). В этом деле нет мелочей: один кривой заголовок или неверный параметр — и система моментально поднимет тревогу, заблокировав запрос.

Динамические правила блокировки

Защита Cloudflare использует динамические правила и постоянно сканирует трафик на подозрительные паттерны. Под прицел попадает всё:

  • Следы известных инструментов для автоматизации и парсинга
  • Криво сформированные запросы (нарушения протоколов)
  • Нетипичное поведение трафика в целом
  • Всплески ошибок на стороне сервера
  • Ситуации, когда кто-то неадекватно часто закидывает кэш запросами

Самое интересное происходит, когда система фиксирует атаку. Она прямо на лету генерирует новую сигнатуру под этот конкретный паттерн и моментально раскидывает правило по всем своим серверам в мире. В итоге автоматизация блокируется, а обычные пользователи ничего не замечают.

Для тех, кто занимается скрапингом, это объясняет главную боль: ваш скрипт мог идеально работать еще вчера, а сегодня тихо и без предупреждений отвалиться. Скорее всего, Cloudflare просто сгенерировал новую сигнатуру и прикрыл эту лазейку.

Молниеносная скорость реакции

Скорость — главный козырь этой системы. Cloudflare распознает и блокирует DDoS-атаки на границе сети менее чем за три секунды, а с HTTP-атаками справляется примерно за 15 секунд. Защита работает как на сетевом уровне (Layers 3/4), так и на уровне приложений (Layer 7) по модели OSI. Пробить эту оборону сложно, но постоянно совершенствуемый подход к обходу может адаптироваться к новым правилам. Большинство специалистов добиваются этого путем регулярных тестов, оставаясь при этом в рамках закона.

Умное обнаружение ботов

Cloudflare прогоняет через свои алгоритмы миллиарды запросов ежедневно, поэтому вычислять ботов они научились блестяще. Система просто смотрит, насколько ваши действия отличаются от поведения обычного пользователя, и присваивает каждому запросу «рейтинг бота» (bot score). Если оценка слишком подозрительная — доступ закрыт.

Именно поэтому для серьезного парсинга всегда нужна комплексная маскировка: постоянная ротация User-Agent, прокси и цифровых отпечатков. Некоторые разработчики заморачиваются настолько, что заставляют свои скрипты ювелирно имитировать работу реального браузера, чтобы система приняла их за живых людей. Другие берут готовые инструменты для обхода, но иллюзий тут быть не должно — даже самые крутые коробочные решения приходится регулярно «допиливать» и перенастраивать, чтобы они не отвалились при очередном обновлении защиты.

Управление инфраструктурой и трафиком

По сути, Cloudflare работает как мощный буфер между пользователями и основным сервером, спасая его от перегрузок. Благодаря их гигантской сети трафик «размазывается» равномерно, и сайты не падают даже при бешеных наплывах посетителей.

Именно поэтому так важно следить за частотой запросов. Опытные разработчики парсеров специально настраивают задержки (таймауты) и распределяют запросы по времени, чтобы их скрипт не выглядел как DDoS-атака. Если жадничать, проигнорировать лимиты и начать спамить запросами без остановки, система моментально это заметит — и ваш парсер быстро улетит в глухой бан, каким бы хитрым он ни был.

Глобальное покрытие

200+ локаций и 120+ миллионов IP-адресов по всему миру. Заходите на сайт откуда нужно.

Тарифы

Многоуровневая защита

Cloudflare объединяет сразу несколько мер безопасности в единый щит:

  • DNSSEC — предотвращает подмену DNS и защищает целостность запросов.
  • Web Application Firewall (WAF) — блокирует типичные веб-угрозы с помощью мощных фильтров.
  • Rate limiting (ограничение частоты) — лимитирует количество запросов от одного пользователя за определенное время, защищая от спама и брутфорса.

Вместе они создают систему, которая постоянно адаптируется к новым угрозам. По этой же причине любой обход Cloudflare требует регулярного обслуживания: каждое обновление безопасности постепенно сводит на нет старые методы.

Методы обнаружения ботов

Чтобы отсеять ботов, Cloudflare натравливает на трафик сразу несколько систем. И пока вы не поймете, куда именно они смотрят, стабильного парсинга не выйдет. Вот три главных столпа их защиты:

  • TLS-отпечатки (Fingerprinting). На самом старте, во время TLS-рукопожатия, Cloudflare собирает кучу параметров (шифры, расширения) и формирует JA3/JA4 отпечаток. У обычных скриптов и базовых HTTP-клиентов этот отпечаток почти всегда палится, потому что сильно отличается от подписи условного Chrome или Firefox. Одного этого прокола уже достаточно, чтобы словить блокировку.
  • JavaScript-челленджи. Система подкидывает хитрые невидимые JS-задачки, чтобы убедиться, что по ту сторону работает настоящий браузер, а не голый код. Cloudflare проверяет наличие специфичных браузерных API, замеряет тайминги и даже смотрит, как двигается курсор мыши. Обычный скрипт такую проверку просто не вытянет.
  • Репутация IP-адреса. Серверные прокси (из дата-центров) изначально вызывают подозрение, и их уровень риска пробит в потолок. А вот резидентные (домашние) адреса получают высокий кредит доверия. Так что если вы видите знакомую заглушку «blocked by Cloudflare protection» — скорее всего, рейтинг вашего IP просто оказался на дне, и система даже не стала вас дальше проверять.

Этическая сторона вопроса

Этическая сторона обхода Cloudflare

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

Главные аспекты:

  • Соблюдение законов и Условий использования (ToS). Ваши действия должны соответствовать законодательству и правилам как Cloudflare, так и целевого сайта. Несогласованный обход может нарушить законы о конфиденциальности (например, GDPR).
  • Конфиденциальность и личные данные. Неосторожный скрапинг может привести к утечке личных данных и нарушению правил защиты информации.
  • Потребление ресурсов. Криво написанные скрипты могут нарушить работу сайта для обычных пользователей и увеличить затраты владельца на хостинг.
  • Ответственное раскрытие информации. Если вы нашли уязвимость, сообщите о ней через официальные каналы, например, программу Bug Bounty от Cloudflare.
  • Региональные ограничения. Правила кибербезопасности отличаются в разных странах, и вы обязаны их соблюдать.

Несколько хороших привычек помогут вам оставаться на светлой стороне. Соблюдайте рамки закона и Условия использования. Бережно обращайтесь с данными. Настраивайте парсеры так, чтобы они не перегружали сервер. Сообщайте об уязвимостях официально и следите за изменением законов, так как правила игры часто меняются.

Можно ли обходить Cloudflare этично? Это полностью зависит от того, насколько хорошо вы следуете этим правилам. Беспорядочный парсинг или игнорирование законов ставит крест на любом обходе — как юридически, так и технически.

Как обойти Cloudflare?

Как обойти Cloudflare

Рабочий обход Cloudflare — это всегда комбинация методов. Задача банальна: притвориться живым человеком и не задеть триггеры, на которые реагирует антибот. На практике это значит, что вам придется «тюнить» скрипты, собирать правдоподобные профили браузера и постоянно держать руку на пульсе, чтобы вовремя адаптироваться к обновлениям защиты.

Универсального одного решения не существует. Если на сайте висит простенькая JS-проверка, её можно пробить обычным стелс-браузером. Но если там накручен Cloudflare Turnstile и стоят жесткие лимиты на запросы, придется расчехлять весь арсенал: резидентные прокси, подмену TLS-отпечатков и автоматические «решалки» капчи.

Главное правило: идите от простого к сложному. Начинайте с самого легкого метода, который справляется с задачей на конкретном сайте, и накручивайте новые слои маскировки только тогда, когда начнут прилетать баны. Делать из простенького парсера навороченного монстра «на всякий случай» — это бессмысленная трата ресурсов. Парадоксально, но излишне перегруженный скрипт иногда выглядит для системы куда подозрительнее, чем самый обычный запрос.

Эмуляция браузера

Эмуляция браузера — это первое, с чего обычно начинают обход Cloudflare. И не зря: инструменты вроде Playwright, Puppeteer и Selenium позволяют настолько точно имитировать поведение человека, что этого хватает для прохождения JavaScript-проверок. Всё решает правильная настройка. Библиотеки вроде Playwright Stealth или Puppeteer Extra маскируют те настройки браузера, которые обычно выдают ботов, делая ваши запросы естественными.

Пример рабочего кода с Puppeteer Extra и Stealth-плагином:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');

// Добавляем stealth-плагин и используем настройки по умолчанию (все техники обхода)
puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({
    headless: false, // Cloudflare реже блокирует браузеры с интерфейсом
    args: ['--no-sandbox', '--disable-setuid-sandbox']
  });
  const page = await browser.newPage();

  // Устанавливаем реалистичный User-Agent
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' +
    'AppleWebKit/537.36 (KHTML, like Gecko) ' +
    'Chrome/90.0.4430.93 Safari/537.36');

  // Переходим на целевой сайт
  await page.goto('https://target-website.com', { waitUntil: 'networkidle2' });

  // Выполняем действия, как реальный пользователь
  // ...

  await browser.close();
})();

Связка Puppeteer Extra и Stealth Plugin — один из самых надежных способов уйти от радаров, поскольку она скрывает цифровые следы автоматизации. Такие скрипты ведут себя как реальные пользователи и реже попадают в бан. Здесь важны две детали: запускайте браузер в обычном (не headless) режиме, так как «безголовые» браузеры отлавливают гораздо быстрее, и устанавливайте реалистичный User-Agent, чтобы слиться с обычным трафиком.

Puppeteer Stealth и обнаружение headless-браузеров

Обычный Puppeteer в headless-режиме попадается моментально, потому что выдает себя через свойства объекта navigator. Подход со stealth-браузером маскирует эти сигналы с помощью плагина puppeteer-stealth: он убирает флаги WebDriver, подделывает плагины Chrome и воссоздает среду реального браузера. Запуск с параметром headless: false заметно повышает шансы на успех, так как Cloudflare гораздо строже проверяет скрытые браузеры. Если вы сталкиваетесь с капчей в Puppeteer, объедините stealth-плагин с сервисом по решению капчи.

UC-режим в SeleniumBase

Режим SeleniumBase UC (undetected-chromedriver) — один из самых эффективных инструментов против бот-детектов Cloudflare. Он модифицирует Chromedriver, удаляя следы автоматизации еще до запуска браузера. В отличие от обычного Selenium, UC-режим сам проходит JS-проверки и может переносить cookies между запросами. Он отлично справляется с Cloudflare Turnstile и стандартными проверками без использования сторонних сервисов для CAPTCHA.

Минимальная настройка UC-режима выглядит так:

from seleniumbase import SB

with SB(uc=True, test=True) as sb:
    url = "https://target-website.com"
    sb.uc_open_with_reconnect(url, reconnect_time=4)
    sb.uc_gui_click_captcha()
    # Продолжаем автоматизированные задачи

Функция uc_open_with_reconnect открывает страницу и на мгновение отключает драйвер, чтобы проверки Cloudflare сработали на «чистом» браузере. А uc_gui_click_captcha кликает по чекбоксу Turnstile, когда тот появляется. Для многих задач парсинга одного UC-режима вполне достаточно, поэтому за него часто берутся в первую очередь, когда более тяжелые браузерные сборки начинают банить.

Сохранение сессии

Стабильное соединение через Cloudflare сильно зависит от сохранения сессий. Cloudflare отслеживает пользователей с помощью файлов cookie, особенно __cflb, который хранит данные о соединении и работает 23 часа (если его не сбросить).

Добавьте управление сессиями в свой скрипт, и ваши шансы на успех резко возрастут. Поддерживая постоянную сессию, вы переносите доверие к вам от одного запуска к другому. Это самая незаметная, но невероятно полезная часть обхода: переиспользование уже доверенной сессии избавляет вас от постоянных проверок, на которые нарывается каждое новое подключение.

Вот как управлять cookies в Playwright:

const { chromium } = require('playwright');
const fs = require('fs');

(async () => {
  const browser = await chromium.launch({ headless: true });
  const context = await browser.newContext();
  const page = await context.newPage();

  // Переходим на сайт, чтобы получить куки
  await page.goto('https://target-website.com', { waitUntil: 'networkidle' });

  // Сохраняем куки в файл
  const cookies = await context.cookies();
  fs.writeFileSync('cookies.json', JSON.stringify(cookies, null, 2));

  // Позже загружаем куки, чтобы поддержать сессию
  const savedCookies = JSON.parse(fs.readFileSync('cookies.json'));
  await context.addCookies(savedCookies);

  // Снова заходим на защищенную страницу уже с сессионными куки
  await page.goto('https://target-website.com/protected-page', { waitUntil: 'networkidle' });

  // Продолжаем работу
  // ...

  await browser.close();
})();

Этот скрипт сохраняет куки после первого визита и подгружает их потом. Это поддерживает сессию активной и сокращает количество повторных проверок.

«Липкие сессии» (sticky sessions) особенно полезны при многошаговых задачах на защищенных сайтах. Они гарантируют, что ваши запросы идут с одного и того же IP на протяжении всего сеанса, что Cloudflare расценивает как возвращение доверенного пользователя. Сохранение сессии также бережет куку cf_clearance, чтобы вам не пришлось решать капчу на каждом шагу.

Мобильные прокси

IP реальных мобильных операторов. Блокируют их редко, а сессия не рвется посреди работы

Попробовать триал $1.99, 100Mb

Обработка CAPTCHA при обходе Cloudflare

Капча — одна из самых сложных преград. Для автономных скриптов умение решать капчу определяет, будет ли задача выполнена за ночь или зависнет на первом же челлендже. Автоматизировать этот процесс непросто, но варианты есть.

Профессиональные сервисы по решению капч работают отлично, а инструменты вроде Cloudflare Turnstile Solver справляются с ними автоматически. В любом случае, это позволит скрипту двигаться дальше.

Вот пример интеграции сервиса 2Captcha:

const puppeteer = require('puppeteer');
const axios = require('axios');

async function solveCaptcha(siteKey, pageUrl) {
  const apiKey = 'YOUR_2CAPTCHA_API_KEY';
  const response = await axios.get(`http://2captcha.com/in.php?key=${apiKey}&method=userrecaptcha&googlekey=${siteKey}&pageurl=${pageUrl}`);
  const requestId = response.data.split('|')[1];

  // Опрашиваем сервер на наличие ответа
  let captchaSolution = null;
  while (!captchaSolution) {
    await new Promise(r => setTimeout(r, 5000)); // Ждем 5 секунд
    const result = await axios.get(`http://2captcha.com/res.php?key=${apiKey}&action=get&id=${requestId}`);
    if (result.data === 'CAPCHA_NOT_READY') continue;
    if (result.data.startsWith('OK|')) {
      captchaSolution = result.data.split('|')[1];
    }
  }
  return captchaSolution;
}

(async () => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto('https://target-website.com', { waitUntil: 'networkidle2' });

  // Проверяем наличие капчи
  const captchaPresent = await page.$('.g-recaptcha') !== null;
  if (captchaPresent) {
    const siteKey = await page.$eval('.g-recaptcha', el => el.getAttribute('data-sitekey'));
    const solution = await solveCaptcha(siteKey, page.url());
    await page.evaluate(`document.querySelector('#g-recaptcha-response').innerHTML="${solution}";`);
    await page.click('#submit-button');
    await page.waitForNavigation({ waitUntil: 'networkidle2' });
  }

  // Продолжаем автоматизированные задачи
  // ...

  await browser.close();
})();

Cloudflare Turnstile против reCAPTCHA

Cloudflare Turnstile — это собственная альтернатива reCAPTCHA от Cloudflare и обычно работает абсолютно незаметно. Он просто считывает метрики браузера, микродвижения мыши и, если всё окей, молча выдает вам заветную куку cf_clearance на 30 минут.

Сервисы вроде 2Captcha и CapMonster уже научились его решать, и сегодня умение работать с Turnstile — это просто база для любого современного парсера. Но имейте в виду: орешек это крепкий. Поскольку Turnstile глубоко анализирует именно поведенческие факторы, обмануть его через «голый» HTTP-клиент практически нереально. Чтобы стабильно проходить эту проверку, вам стопроцентно понадобится полноценный эмулятор браузера.

Использование динамических User-Agent

Cloudflare внимательно следит за строками User-Agent, поэтому здесь нужен осмысленный подход:

  • Собирайте правильные строки User-Agent
  • Поддерживайте список в актуальном состоянии
  • Чередуйте их при каждой новой сессии или запросе
  • Убедитесь, что остальные заголовки соответствуют заявленному агенту

Вот как ротировать User-Agent с помощью Selenium:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import random

# Список реалистичных User-Agent
user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)" +
    " Chrome/91.0.4472.124 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)" +
    " Version/14.0.3 Safari/605.1.15",
    # Добавьте больше вариантов по необходимости
]

def get_random_user_agent():
    return random.choice(user_agents)

chrome_options = Options()
chrome_options.add_argument(f"user-agent={get_random_user_agent()}")

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://target-website.com')

# Продолжаем работу...

driver.quit()

Хороший пул для ротации берет данные от разных реальных браузеров и устройств, чтобы ваши запросы не выглядели скопированными. Выбор свежего User-Agent на каждую сессию ломает повторяющийся шаблон, на который реагирует Cloudflare. Сама по себе ротация User-Agent — слабый метод, но в связке с ротацией прокси она убирает два самых очевидных следа автоматизации.

Использование ротации прокси

Если говорить о конкретных фишках, то грамотная ротация прокси дает для обхода больше, чем любой другой прием. Она бьет в самую суть защиты — отслеживание по IP-адресу.

Безоговорочный лидер здесь — резидентные прокси. Запросы через них выглядят так, будто их отправляет обычный человек со своего домашнего Wi-Fi. Настраивая ротацию, вы отлично «размазываете» трафик и сводите риск обнаружения к минимуму.

Главный навык — нащупать правильный тайминг смены IP-адресов. Нужно менять их с такой частотой, чтобы не упереться в жесткие лимиты Cloudflare и не словить бан за подозрительно высокую активность с одного адреса.

Пример ротации прокси в Python:

import requests
from itertools import cycle

# Список резидентных прокси
proxies = [
    'http://residential_proxy1:port',
    'http://residential_proxy2:port',
    'http://residential_proxy3:port',
    # Добавьте еще
]

proxy_pool = cycle(proxies)
url = 'https://target-website.com'

for i in range(1, 101):
    proxy = next(proxy_pool)
    try:
        response = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=5)
        if response.status_code == 200:
            print(f"Запрос #{i} успешен с прокси {proxy}")
        else:
            print(f"Запрос #{i} отклонен со статусом {response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"При запросе #{i} произошла ошибка: {e}")

Резидентные прокси попадают под подозрение гораздо реже серверных. Распределение запросов по пулу IP-адресов не дает ни одному из них привлечь к себе внимание, а функция cycle из библиотеки itertools автоматически перебирает прокси по кругу.

Чтобы эффективно менять прокси в обход защиты Cloudflare, выбирайте резидентные адреса. Серверным Cloudflare изначально присваивает высокий уровень риска, поскольку они ассоциируются с ботами, тогда как резидентный прокси от реального провайдера получает высокий кредит доверия (как обычный домашний интернет).

Пару правил ротации: не используйте один и тот же IP для слишком большого числа запросов (это вызовет срабатывание лимитов), используйте «липкие сессии» для многоэтапных задач и меняйте провайдеров резидентных прокси, чтобы вас не вычислили по подсети одного поставщика.

Резидентные прокси

Реальные IP домашних провайдеров, которым Cloudflare доверяет как обычному домашнему интернету.

Попробовать триал $1.99, 100Mb

Подмена TLS-отпечатков (Fingerprinting)

Проверка TLS-отпечатков — один из самых точных методов обнаружения у Cloudflare. Технологии JA3 (отпечаток клиента) и JA4 (отпечаток сервера) считывают характеристики TLS-рукопожатия, включая наборы шифров, расширения и эллиптические кривые. Эти данные помогают Cloudflare отличать людей от скриптов.

Вот пример использования curl-impersonate для стабильного TLS-отпечатка:

# Установка curl-impersonate
go get github.com/GitSquared/curl-impersonate

# Пример использования в shell-скрипте
#!/bin/bash

# Путь к curl-impersonate
CURL_IMPERSONATE=/path/to/curl-impersonate

# Целевой URL
URL="https://target-website.com"

# Выполняем запрос с правильным TLS-отпечатком
$CURL_IMPERSONATE -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "$URL"

Инструменты вроде curl-impersonate позволяют настроить TLS-рукопожатие так, чтобы оно в точности соответствовало популярному браузеру. Сохраняйте единый TLS-отпечаток между сессиями, и у систем защиты будет меньше поводов для блокировки — это именно то, что нужно для стабильного обхода.

Помимо curl-impersonate, есть и другие инструменты:

  • Camoufox — модифицированная сборка Firefox, которая автоматически меняет профили TLS, копируя реальные браузерные подписи без патчей.
  • Python HTTP-клиенты с поддержкой патчинга TLS (например, curl_cffi), имитирующие рукопожатия Chrome, Firefox и Safari.
  • Nodriver — патчит Selenium для использования TLS-отпечатка реального браузера вместо стандартной подписи автоматизации, которую легко ловит Cloudflare.

Объединение методов: комплексная стратегия

Комплексная стратегия по обходу Cloudflare

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

Вот как объединить все эти методы с помощью Puppeteer Extra на Node.js:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const fs = require('fs');
const axios = require('axios');
const proxyChain = require('proxy-chain');

// Добавляем stealth-плагин
puppeteer.use(StealthPlugin());

async function solveCaptcha(siteKey, pageUrl) {
  const apiKey = 'YOUR_2CAPTCHA_API_KEY';
  const response = await axios.get(`http://2captcha.com/in.php?key=${apiKey}&method=userrecaptcha&googlekey=${siteKey}&pageurl=${pageUrl}`);
  const requestId = response.data.split('|')[1];

  // Ждем решения капчи
  let captchaSolution = null;
  while (!captchaSolution) {
    await new Promise(r => setTimeout(r, 5000));
    const result = await axios.get(`http://2captcha.com/res.php?key=${apiKey}&action=get&id=${requestId}`);
    if (result.data === 'CAPCHA_NOT_READY') continue;
    if (result.data.startsWith('OK|')) {
      captchaSolution = result.data.split('|')[1];
    }
  }
  return captchaSolution;
}

(async () => {
  // Настройка ротации прокси
  const proxies = [
    'http://residential_proxy1:port',
    'http://residential_proxy2:port',
    // ...
  ];
  const proxyPool = proxies.slice();
  const proxy = proxyPool[Math.floor(Math.random() * proxyPool.length)];
  const oldProxyUrl = proxy;
  const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);

  // Запуск браузера с прокси
  const browser = await puppeteer.launch({
    headless: false,
    args: [`--proxy-server=${newProxyUrl}`]
  });
  const context = await browser.createIncognitoBrowserContext();
  const page = await context.newPage();

  // Выбор случайного User-Agent
  const userAgents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)" +
    " Chrome/91.0.4472.124 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)" +
    " Version/14.0.3 Safari/605.1.15",
  ];
  const userAgent = userAgents[Math.floor(Math.random() * userAgents.length)];
  await page.setUserAgent(userAgent);

  // Загрузка куки, если они есть
  if (fs.existsSync('cookies.json')) {
    const cookies = JSON.parse(fs.readFileSync('cookies.json'));
    await context.addCookies(cookies);
  }

  // Переход на целевой сайт
  await page.goto('https://target-website.com', { waitUntil: 'networkidle2' });

  // Обработка капчи, если она появилась
  const captchaPresent = await page.$('.g-recaptcha') !== null;
  if (captchaPresent) {
    const siteKey = await page.$eval('.g-recaptcha', el => el.getAttribute('data-sitekey'));
    const captchaSolution = await solveCaptcha(siteKey, page.url());
    await page.evaluate(`document.querySelector('#g-recaptcha-response').innerHTML="${captchaSolution}";`);
    await page.click('#submit-button');
    await page.waitForNavigation({ waitUntil: 'networkidle2' });
  }

  // Сохранение куки для будущих сессий
  const cookies = await context.cookies();
  fs.writeFileSync('cookies.json', JSON.stringify(cookies, null, 2));

  // Дальнейшая работа
  // ...

  await browser.close();
})();

Давайте разберем, как всё это работает:

  • Ротация прокси. Каждый запрос уходит с нового IP-адреса, ломая любые паттерны, за которые могла бы зацепиться защита. А библиотека proxy-chain накидывает сверху еще один уровень анонимности.
  • Стелс-плагин и смена User-Agent. Динамическая подмена агентов на лету и затирание следов автоматизации делают так, что наши запросы выглядят абсолютно «по-человечески».
  • Сохранение сессии. Мы аккуратно сохраняем и подтягиваем файлы cookie при каждом перезапуске. Это позволяет «тащить» однажды полученное доверие за собой и не нарываться на жесткие проверки при каждом чихе.
  • Решение CAPTCHA. Встроенная «решалка» автоматически справляется с челленджами, чтобы скрипт не завис намертво посреди работы.

Когда все эти элементы работают в единой связке, отследить ваши запросы становится невероятно сложно. В конечном счете, надежный обход Cloudflare именно к этому и сводится: максимум стабильности, минимум банов.

Частые проблемы и их решение

Но даже самый идеальный сетап рано или поздно ломается. Грань между стабильным парсингом и просто куском мертвого кода сводится к одному: насколько быстро вы умеете находить причину блокировки и возвращать скрипт в строй.

Вас все еще блокируют после настройки обхода?

Если ваш сетап перестал работать, проверьте три вещи:

  • Cloudflare часто обновляет алгоритмы обнаружения. Обновляйте инструменты и библиотеки после каждого крупного апдейта защиты, так как старые версии быстро перестают работать.
  • Ваш цифровой отпечаток может не совпадать с поведением реального пользователя. Проверьте его на browserleaks.com и посмотрите, что вызывает подозрения.
  • Возможно, вы отправляете запросы слишком быстро. Лимиты Cloudflare сначала выдают ошибку 429 Too Many Requests, а при продолжении банят по IP.

Как снять блокировку Cloudflare

Если защита вас уже заблокировала, действуйте по порядку:

  1. Подождите около 30 минут. Первые блокировки часто бывают временными и снимаются сами собой.
  2. Переключитесь на другой IP-адрес резидентного прокси.
  3. Очистите cookie и начните новую сессию в браузере.
  4. Все еще не можете пробиться при скрапинге? Используйте связку SeleniumBase UC Mode, «липкие сессии» и свежий пул резидентных прокси. Этот метод пробивает большинство упрямых блокировок.

Прежде чем ставить крест на сайте и решать, что его защиту невозможно пробить, просто пройдитесь по этому чеклисту. В девяти случаях из десяти скрипт спотыкается о банальные вещи: устаревшую версию библиотеки, «спаленный» IP-адрес или слишком агрессивную частоту запросов. Чаще всего проблема кроется именно в этом, а вовсе не в какой-то непреодолимой стене Cloudflare.

Заключение

обход Cloudflare

Cloudflare действительно здорово усложняет жизнь при сборе данных. Система бьет сразу по всем фронтам: проверяет цифровые отпечатки, анализирует поведение пользователя и натравливает жесткие антибот-алгоритмы. Неудивительно, что простые скрипты моментально отлетают в бан.

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

И последнее: не забывайте об этике. Собирайте данные аккуратно, не «кладите» чужие сервера сотнями запросов в секунду и оставайтесь в рамках закона. Адекватный подход убережет вас от юридических проблем и поможет стабильно получать нужную информацию долго и без лишних нервов.

Получайте уведомления о новых функциях и обновлениях Froxy

Узнайте первыми о новых функциях Froxy, чтобы оставаться в курсе событий происходящих на рынке цифровых технологий и получать новости о новых функциях Froxy.

Статьи по Теме

Как обойти защиту Cloudflare от ботов: вариант веб-скрапинга с Puppeteer

Парсинг

Как обойти защиту Cloudflare от ботов: вариант веб-скрапинга с Puppeteer

Как настроить Puppeteer для обхода Cloudflare: прокси-серверы, управление сессиями и обработка CAPTCHA. В статье практические советы и напоминание об...

Команда Froxy 30 окт. 2025 10 мин
Ошибка Cloudflare 1010: причины, решения и профилактика

Кейсы

Ошибка Cloudflare 1010: причины, решения и профилактика

Узнайте о ошибке Cloudflare 1010, возникающей при скрапинге. Рассказываем о ее причинах и способах решения, чтобы обеспечить бесперебойное извлечение...

Команда Froxy 14 янв. 2026 7 мин