Как установить и использовать FlareSolverr с Docker, Python & прокси

Cloudflare блокирует множество скраперов ещё до того, как они увидят страницу. FlareSolverr - один из инструментов, к которым прибегают, когда обычный HTTP-клиент вместо реального контента постоянно получает страницу с проверкой.
Это руководство предназначено для разработчиков, которые уже знают основы скрапинга но никогда не настраивали FlareSolverr. Вы узнаете, что он делает, как его установить, как обращаться к его API и где с ним возникают трудности.
Мы также затронем тему прокси. FlareSolverr решает задачу браузерной проверки, но IP-адрес, стоящий за этим браузером, по-прежнему имеет большое значение.
Что такое FlareSolverr?
FlareSolverr — это прокси-сервер с открытым исходным кодом, созданный для обхода защиты Cloudflare и DDoS-Guard. Он работает между вашим скрапером и целевым сайтом и предоставляет REST API, который очень похож на обычный HTTP-запрос.
Под капотом он управляет настоящим браузером Chrome через Selenium с undetected-драйвером. Это важно, потому что проверки Cloudflare анализируют поведение браузера, а не только заголовки.
Типичные сценарии использования включают:
- Скрапинг сайтов, защищённых managed challenge или JS challenge от Cloudflare
- Получение clearance-cookie для последующего повторного использования в лёгком HTTP-клиенте
- Автоматизация доступа к сайтам, которые блокируют простые библиотеки запросов, такие как requests или httpx
Полезно знать: FlareSolverr — это прокси-слой, а не полноценный фреймворк для скрапинга. Логику скрапинга вы всё равно пишете сами. FlareSolverr просто отдаёт вам HTML после того, как проверка пройдена.
Как работает FlareSolverr
Процесс становится понятным, как только вы увидите его в развёрнутом виде.
- Входящий запрос. Ваш скрипт отправляет POST-запрос к локальному API FlareSolverr с целевым URL.
- Запуск браузера. FlareSolverr открывает экземпляр Chrome (или переиспользует уже открытый в активной сессии).
- Проверка Cloudflare. Браузер переходит по URL и ждёт, пока Cloudflare выполняет свои проверки.
- Выдача cookie. Как только проверка пройдена, Cloudflare устанавливает в браузере cookie доступа (clearance cookie).
- Работа с сессиями. Если вы использовали сессию, браузер и его cookie остаются активными для повторного использования.
- Возврат HTML. FlareSolverr возвращает итоговый HTML страницы, заголовки, cookie и использованный user agent.
Последняя часть важна. Если вы переиспользуете cookie в другом HTTP-клиенте, вам нужно использовать тот же user agent, который сообщает FlareSolverr, иначе Cloudflare снова выдаст проверку.
Когда стоит использовать FlareSolverr?
FlareSolverr подходит не для каждой задачи скрапинга. Он медленнее и тяжелее обычного HTTP-клиента, потому что запускает полноценный браузер на каждый запрос или сессию.
| Хорошо подходит | Плохо подходит |
| Сайты за JavaScript-проверкой или Managed Challenge от Cloudflare | Сайты вообще без защиты от ботов |
| Задачи по скрапингу с малым и средним объёмом | Скрапинг большого объёма, требующий тысяч запросов в минуту |
| Получение clearance-cookie Cloudflare для повторного использования в последующих запросах | Сайты, защищённые сложными CAPTCHA, такими как hCaptcha или reCAPTCHA |
| Периодический доступ к защищённым страницам или упрямым API-эндпоинтам | Рабочие процессы в реальном времени или чувствительные к задержкам |
Для крупных задач по скрапингу более лёгкий подход (ротационные прокси плюс лёгкий HTTP-клиент, с переходом на FlareSolverr только для запросов с проверками) обычно работает лучше, чем маршрутизация всего через браузер.
Установка FlareSolverr
Docker — рекомендуемый способ установки. Образ уже включает браузер, поэтому вы пропускаете длинную цепочку зависимостей.
Docker
Эта команда загружает образ, открывает порт 8191 и автоматически перезапускает контейнер при сбое или перезагрузке хоста.
Docker Compose
Беги docker compose up -d в той же папке, чтобы запустить его. Compose стоит использовать, когда вы добавляете больше переменных окружения, так как он хранит вашу конфигурацию в одном файле вместо длинной команды CLI.
Проверка установки
Рабочая установка возвращает JSON-объект с полем решение содержащим HTML страницы, код состояния и cookie. Если вы получаете ошибку подключения, проверьте, что порт 8191 действительно проброшен и не заблокирован файрволом.
Основные параметры конфигурации
| Переменная | Что это делает |
| LOG_LEVEL | Управляет уровнем детализации логирования. Установите значение отладка при устранении неполадок. |
| PROXY_URL | Задаёт прокси по умолчанию для всех запросов, если для отдельного запроса или сессии не указан другой прокси. |
| PROXY_USERNAME / PROXY_PASSWORD | Задаёт учётные данные для аутентификации, используемые с прокси по умолчанию, который настроен в PROXY_URL. |
| TZ | Устанавливает часовой пояс браузера и временные метки в логах. Согласование его с локацией вашего прокси помогает создавать более согласованные отпечатки браузера. |
| HEADLESS | По умолчанию запускает браузер в безголовом режиме. Отключайте его только при локальной отладке, когда вам нужно видеть окно браузера. |
| TEST_URL | Указывает URL, который FlareSolverr проверяет при запуске, чтобы убедиться, что браузер работает корректно. Измените его, если URL по умолчанию заблокирован в вашем регионе. |
Использование API FlareSolverr
FlareSolverr предоставляет одну конечную точку, /v1, и вы сообщаете ей, что делать, через поле cmd в теле запроса.
GET-запрос
POST-запрос
Добавьте postData поле в формате application/x-www-form-urlencoded
Пример на Python
В ответе вы получаете отрендеренный HTML, cookies, установленные Cloudflare, и точную строку user agent, которую использовал браузер. Храните все три вместе, если планируете отправлять последующие запросы с помощью другого HTTP-клиента.
Обратите внимание: если вы повторно используете clearance-cookie с несовпадающим user agent, Cloudflare снова покажет проверку. Всегда используйте cookie в паре с тем user agent, который был указан.
Управление сессиями
Каждый запрос без сессии запускает новый браузер, проходит проверку, а затем закрывает браузер. Это работает, но медленно и расточительно, если вы обращаетесь к одному и тому же сайту многократно.
Сессии поддерживают один экземпляр браузера активным на протяжении нескольких запросов, поэтому вы проходите проверку один раз и используете её повторно.
Создание сессии
Повторное использование сессии
Уничтожение сессии
Всегда уничтожайте сессии, как только они вам больше не нужны. Простаивающий браузер по-прежнему занимает память, а запуск слишком большого их количества одновременно замедлит или обрушит хост-машину.
Использование прокси с FlareSolverr
FlareSolverr решает браузерную сторону проверки. Он никак не влияет на репутацию IP за этим браузером, а Cloudflare сильно учитывает репутацию IP при решении, показывать ли проверку вообще.
IP дата-центра с историей скрапинг-трафика получает проверки постоянно, как бы хорошо ни вёл себя браузер. Чистый IP реального пользователя пропускают без проверки гораздо чаще.
| Тип прокси | IP-источник | Лучшее для |
| Центр обработки данных | Хостинг-провайдеры и облачные дата-центры | Высокая скорость, низкая стоимость и сайты со слабой защитой от ботов или без неё |
| Резидентские | Реальные домашние интернет-подключения | Сайты со строгим обнаружением ботов, сайты под защитой Cloudflare и масштабный веб-скрапинг |
| Интернет-провайдер (Статические резидентные) | Выделенные провайдером IP, размещённые на отдельной инфраструктуре | Долгие сессии, которым нужен стабильный IP-адрес с доверием на уровне резидентных |
| мобильные | Сети мобильных операторов (4G/5G) | Платформы с приоритетом мобильных устройств, автоматизация соцсетей и сайты, которые доверяют IP, используемым реальными мобильными пользователями |
Вы задаёте прокси для каждого запроса или для каждой сессии, используя прокси field, со схемой, включённой в URL:
Именно здесь провайдер прокси, такой как NodeMaven может действительно всё изменить. NodeMaven предлагает пул из 30М+ резидентских IP-адресов через 190+ стран. Каждый IP проходит фильтрацию качества в реальном времени, что помогает гарантировать получение чистых, надёжных IP для ваших сессий скрапинга.
Для пользователей FlareSolverr особенно полезны две функции. Sticky-сессии позволяют сохранять один и тот же IP на срок до 24 часа, что упрощает поддержание единой идентичности между несколькими запросами. Вы также можете выбирать прокси по страна, город или почтовому индексу, позволяя вашему трафику соответствовать ожидаемому местоположению посетителя и снижая вероятность блокировок по геолокации.
Распространённые ошибки FlareSolverr и их устранение
| Ошибка | Вероятная причина | Как это исправить |
| Тайм-аут / Проверка не пройдена | Зона maxTimeout слишком мало, или проверка Cloudflare занимает больше времени, чем ожидалось. | Увеличьте maxTimeout . Проверьте загрузку CPU и памяти хоста, чтобы убедиться, что у FlareSolverr достаточно ресурсов. |
| 403 Запрещено | У IP прокси плохая репутация, или сайт ввёл более строгую защиту от ботов. | Переключитесь на чистый резидентный прокси и убедитесь, что вы используете последнюю версию FlareSolverr. |
| 503 Service Unavailable | Контейнер FlareSolverr перегружен, перезапускается или временно недоступен. | Уменьшите количество одновременных сессий и проверьте логи контейнера на наличие ошибок. |
| Сбой браузера | На хосте недостаточно памяти или одновременно запущено слишком много экземпляров браузера. | Ограничьте число параллельных сессий и выделите контейнеру больше ресурсов RAM или CPU. |
| Сессия истекла | Сессия была удалена, истекла по тайм-ауту, или процесс браузера неожиданно остановился. | Создайте новую сессию и добавьте логику повторных попыток для автоматического восстановления после истечения сессий. |
| Ошибка аутентификации прокси | Неверное имя пользователя или пароль прокси, либо конфигурация прокси не поддерживается для этого запроса. | Проверьте учётные данные прокси и при необходимости настройте прокси при создании сессии, а не в отдельных запросах. |
Ограничения FlareSolverr
FlareSolverr действительно полезен, но стоит честно признать, в чём он не дотягивает.
- КАПЧА: FlareSolverr не решает hCaptcha, reCAPTCHA или CAPTCHA Cloudflare Turnstile самостоятельно. Он может обнаружить запрос CAPTCHA, но не пройдёт его без внешнего решателя, а встроенная поддержка решателей работает ненадёжно.
- Отпечаток браузера: Продвинутые антибот-системы анализируют гораздо больше, чем просто проверку Cloudflare, и стелс-браузер не остаётся невидимым навсегда.
- TLS-фингерпринтинг: Часть обнаружения происходит на уровне TLS-рукопожатия, что находится вне зоны контроля FlareSolverr.
- Использование памяти: Каждая активная сессия — это реальный процесс Chrome. Десять сессий означают десять браузеров, работающих одновременно.
- Масштабируемость: Из-за затрат памяти FlareSolverr не масштабируется так же, как легковесный скрапер на основе HTTP.
Лучшие практики
- Повторно используйте сессии вместо того чтобы решать проверку при каждом отдельном запросе.
- Ротация IP-адресов для задач большого объёма, чтобы ни один адрес не принимал на себя весь трафик.
- Используйте резидентные прокси на сайтах со строгими конфигурациями Cloudflare, поскольку репутация IP определяет, как часто вам будут показывать проверки.
- Задавайте реалистичные заголовки и позвольте user agent, о котором сообщает FlareSolverr, передаваться во все последующие запросы.
- Настройка параллелизма под объём доступной RAM вашего хоста. Меньшее число параллельных браузеров лучше, чем частые сбои.
- Настройте тайм-ауты в зависимости от того, насколько медленным обычно бывает challenge целевого сайта.
- Сопоставляйте геолокацию прокси с ожидаемым трафиком сайта, особенно для гео-чувствительных платформ.
Альтернативы FlareSolverr
| Инструмент | Лучше всего подходит, когда |
| FlareSolverr | Вам нужно бесплатное решение с открытым исходным кодом для прохождения challenge-ей Cloudflare, и вы готовы управлять собственной инфраструктурой. |
| Playwright | Вам нужен полный контроль над автоматизацией браузера, и вы готовы самостоятельно выстраивать логику stealth и обхода анти-бот систем. |
| Puppeteer | Вы работаете в среде Node.js и вам нужен прямой контроль над браузером Chromium. |
| Nodriver | Вы предпочитаете лёгкую современную Python-библиотеку, созданную для незаметной автоматизации браузера. |
| ZenRows | Вам нужен управляемый API для скрапинга, который берёт на себя рендеринг браузера, прокси и обход анти-бот систем. |
| ScrapFly | Вам нужен API для скрапинга со встроенной обработкой анти-бот систем, рендерингом браузера и извлечением структурированных данных. |
FlareSolverr выигрывает по стоимости, поскольку он бесплатный и работает на собственном сервере. Управляемые сервисы вроде ZenRows и ScrapFly стоят дороже, но снимают с вас бремя обслуживания собственной браузерной инфраструктуры.
Заключение
FlareSolverr хорошо справляется с браузерной частью проверки Cloudflare, особенно при скрапинге малого и среднего объёма и разовом доступе к упрямым эндпоинтам. Он не предназначен для решения CAPTCHA и не является самым лёгким вариантом для задач очень большого объёма.
IP, стоящий за FlareSolverr, важен ничуть не меньше, чем сам инструмент. Сочетание его с чистым пулом резидентных прокси, липкими сессиями там, где нужна непрерывность, и разумными ограничениями на параллельность продвинет вас гораздо дальше, чем запуск на помеченном IP дата-центра.
Если проверки Cloudflare продолжают появляться, что бы вы ни пробовали, проверьте репутацию своего прокси, прежде чем считать, что FlareSolverr сломан. Обычно именно там и прячется настоящая проблема.




