Работа с защитой от ботов
Современные веб-сайты используют продвинутые системы обнаружения ботов. В этом руководстве объясняется, как FourA работает с антибот-системами и как максимизировать процент успешных запросов.
Как работает обнаружение ботов
Веб-сайты используют несколько уровней защиты:
- Репутация IP: Дата-центры и известные адреса proxy блокируются
- Сетевые отпечатки: Каждый HTTP-клиент имеет уникальную сигнатуру handshake, которую сайты могут обнаружить
- Отпечатки браузера: JavaScript проверяет индикаторы headless браузеров
- Поведенческий анализ: Паттерны request, тайминги и навигационный поток
- CAPTCHA: Визуальные тесты как последняя линия защиты
Популярные антибот-провайдеры включают Cloudflare, DataDome, PerimeterX и Akamai Bot Manager.
Самый быстрый путь: Auto
Если вы еще не знаете уровень защиты, вызовите /api/auto/ с подстрокой validate.data.accept, которая есть только на реальной странице. Auto проходит по лестнице с учетом затрат (дешевая проверка, ротируемый proxy, рендеринг в браузере, браузер через proxy) и останавливается на первой ступени, которая возвращает response, подходящий под ваши правила. При повторных вызовах к тому же хосту вместо этого воспроизводится прогретая сессия, поэтому второй запрос будет дешевым.
curl -X POST https://eu.api.foura.ai/api/auto/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://protected-site.com/product/42",
"validate": {"data": {"accept": ["Add to cart"]}}
}'
Без validate.data.accept auto не может отличить реальный статус 200 от страницы проверки (challenge), возвращаемой со статусом 200, и может вернуть проверку как успешную. Смотрите руководство по Smart Fetch для полного описания.
Как FourA помогает на каждом уровне
Реалистичные запросы на сетевом уровне
Единый endpoint (POST /api/single/) передает параметры рукопожатия, соответствующие реальному браузеру. Это позволяет проходить большинство проверок на сетевом уровне без накладных расходов на запуск полноценного браузера.
Включите unblocker для добавления реалистичных заголовков браузера (User-Agent, Sec-Ch-Ua, Sec-Fetch-*, Accept-Encoding). unblocker включен по умолчанию; используйте false только для отправки базовой сигнатуры клиента.
{
"method": "GET",
"url": "https://protected-site.com/data",
"unblocker": true
}
Рендеринг в реальном браузере
Endpoint браузера (POST /api/browser/) запускает полноценный экземпляр браузера Chrome. В сочетании с патчами против обнаружения это позволяет проходить большинство проверок отпечатков на базе JavaScript. unblocker в Browser запускает автоматический обход защиты (очистка Turnstile и аналогичные шлюзы). Оставьте его включенным, если не хотите получить исходную страницу с проверкой.
Ротация proxy
Endpoint proxy (POST /api/proxy/) автоматически выполняет ротацию резидентных и дата-центровых proxy. Если один IP блокируется, следующая попытка использует другой. Используйте ignoreProxies при последующем вызове, чтобы пропустить уже заблокированные выходные узлы. Используйте maxTries (по умолчанию 5, максимум 90) для управления интенсивностью работы.
Выходные узлы с привязкой к стране
Передайте exitCountries в /api/proxy/, чтобы ограничить выбор только теми proxy, чья видимая для цели страна совпадает со строгим белым списком. Значения представляют собой двухбуквенные коды (["CZ", "GB"]), очищенные от пробелов, переведенные в верхний регистр и дедуплицированные. FourA никогда не использует незапрошенную страну в качестве резервной. Если в текущем пуле нет совпадений, ответ возвращает code: "no_eligible_proxy" с нормализованной областью в details.exitCountries, поэтому вы можете повторить попытку позже без ослабления требований.
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 5,
"exitCountries": ["CZ", "GB"],
"request": {"method": "GET", "url": "https://target.example/pricing"}
}'
Ответ включает exitCountry, если был запрошен scoping. Убедитесь, что он находится в вашем allowlist, прежде чем доверять полезной нагрузке, затем повторно используйте возвращенный ID proxy в любом последующем вызове Browser, чтобы рендеринг JavaScript выполнялся через тот же exit.
FourA сообщает, что вас остановило
Вам не нужно гадать, какая система заблокировала request. Если целевой ресурс выполняет проверку на ботов, response указывает ее.
POST /api/single/иPOST /api/proxy/возвращают объектdefense:defense.vendorуказывает систему,defense.solvedсообщает, пройдена ли проверка, аdefense.presentперечисляет все распознанное в этом ответе.POST /api/browser/возвращаетdefenseSolved, а такжеdefenses.presentиdefenses.cleared.
{
"status": 200,
"data": "<!doctype html>...",
"defense": {
"vendor": "sgcaptcha",
"solved": true,
"present": ["sgcaptcha"],
"cookie": "_I_=<clearance>"
}
}
Из этого следуют два правила:
solved: falseозначает, что body может быть проверкой, а не страницей. FourA никогда не выдает нерешенную проверку за контент, поэтому проверяйте флаг перед парсингом.- Решение дает вам допуск. Если присутствует
defense.cookie, отправьте его обратно как заголовокCookieчерез тот же узел выхода с тем же User-Agent, и последующие запросы полностью пропустят проверку.
FourA распознает Cloudflare, SiteGround, DataDome, PerimeterX, Akamai, Incapsula, AWS WAF, hCaptcha, reCAPTCHA и собственную проверку eBay. Распознавание шире, чем прохождение: система, которую мы можем назвать, но не можем пройти, заносится в отчет и никогда не меняет стоимость запроса. Смотрите Anti-Bot Defenses для всех полей, текущего разделения на прохождение и обнаружение, а также примера повторного выполнения (replay).
Стратегия по уровню защиты
Неизвестная защита
Используйте auto. Сначала выполняются дешевые проверки, и уровень повышается только тогда, когда этого требует цель, поэтому вы платите за обнаружение один раз для каждого хоста.
Низкая защита (большинство сайтов)
Используйте единый endpoint с unblocker. Совпадения на сетевом уровне (wire-level) достаточно.
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "GET", "url": "https://news-site.com/article", "unblocker": true}'
Средняя защита (Cloudflare, базовый WAF)
Используйте browser endpoint для прохождения JavaScript-проверок:
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://protected-site.com/data", "timeout_ms": 15000}'
Высокая защита (DataDome, PerimeterX)
Используйте proxy endpoint с несколькими попытками повтора:
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 10,
"request": {
"method": "GET",
"url": "https://heavily-protected.com/prices",
"unblocker": true
}
}'
Для цепочек проверок WAF (Cloudflare "Just a moment", Vercel Security Checkpoint, Akamai Bot Manager), когда вам нужна отрендеренная страница после прохождения проверки, смотрите MCP Recipes. Рецепт "Protected page: proxy first, browser when JavaScript is needed" показывает точную передачу от proxy к браузеру.
Лучшие практики
Начинайте с auto для неизвестных целей. Передайте правило
validate, позвольте системе выбрать самый дешевый уровень, затем прочитайтеmeta.rungв ответе, чтобы увидеть, какой движок сработал. Узнав это, вызывайте этот движок напрямую для повторного трафика.Повторно используйте успешную сессию. После вызова auto возвращенный
session(proxy ID + cookies + userAgent) можно воспроизвести через/api/single/или/api/browser/для последующих страниц на том же хосте по цене Single.Соблюдайте rate limits. Даже с ротацией proxy отправка сотен запросов в секунду на один сайт вызовет поведенческое обнаружение. Делайте паузы между запросами хотя бы в 1-2 секунды.
Оставляйте
unblockerвключенным. Для запросов Single, Proxy и Browserunblocker: true(по умолчанию) автоматически внедряет реалистичные заголовки браузера. Отключайте это только тогда, когда вам специально нужна обычная сигнатура клиента или исходная страница проверки.Отслеживайте процент успеха. Проверяйте метрики в Dashboard, чтобы отслеживать процент успеха с течением времени. Внезапное падение обычно означает, что целевой сайт обновил свою защиту.
Пропускайте сгоревшие выходы. Если вызов
/api/proxy/или/api/auto/вернул proxy ID, который затем начал давать сбои, передайте его вignoreProxiesпри следующем вызове, чтобы FourA выбрал другой выход.Прочитайте
defenseперед повторной попыткой. Имя вендора скажет вам, стоит ли пробовать другой профиль браузера, нужен ли вам полный рендеринг или это проверка, которую никто не проходит без сервиса решений.Меняйте представляемый браузер. Некоторые цели принимают один браузер и отказывают другому. Установите
browser,osилиversionв Single и Proxy, и прочитайтеGET /api/profilesдля просмотра текущего каталога. Подробности в справочнике endpoint.
Что FourA не может обойти
Некоторые сценарии требуют дополнительной обработки вне API:
- Контент, защищенный авторизацией: FourA не управляет долгоживущими сессиями за вас. Browser endpoint принимает
cookiesдля каждого запроса; передавайте ваши сессионные cookie самостоятельно. - Интерактивные CAPTCHA: для reCAPTCHA и hCaptcha нужен сервис решения. FourA распознает их обе и сообщает о них в
defense.present, но не решает их. Turnstile обрабатывается через Browser. - Гео-ограниченный контент: используйте
exitCountriesв/api/proxy/, чтобы привязать выбор к разрешенным странам. Сайты, которые дополнительно вводят ограничения по ISP или ASN (некоторые лицензированные букмекеры, определенные государственные сервисы), могут по-прежнему блокировать обычные residential выходы; запрос возвращаетno_eligible_proxy, когда в текущем пуле нет подходящего выхода. - Сайты с правовыми ограничениями: Всегда убеждайтесь, что ваш сбор данных соответствует условиям использования целевого сайта и применимым законам.
Следующие шаги
- Smart Fetch (Auto): Подробный обзор
/api/auto/ - Выбор правильного Endpoint: Руководство по выбору endpoint
- Частые проблемы: Исправление ошибок 403 и блокировок captcha
- API Endpoints: Полный справочник параметров, включая
exitCountries - Защита от ботов: Поле
defense, список вендоров и clearance replay - MCP Рецепты: Шаблоны рабочих процессов, включая цепочку proxy-first-then-browser