Обработка на Anti-Bot защита

Модерните уебсайтове използват усъвършенствано засичане на ботове. Това ръководство обяснява как FourA се справя с anti-bot системите и как да максимизирате успеваемостта си.

Как работи засичането на ботове

Уебсайтовете използват няколко слоя на защита:

  • IP reputation: Дата центрове и известни proxy адреси биват блокирани
  • Wire fingerprinting: Всеки HTTP клиент има уникален handshake подпис, който сайтовете могат да засекат
  • Browser fingerprinting: JavaScript проверява за индикатори на headless браузър
  • Поведенчески анализ: Модели на request, времеви интервали и навигационен поток
  • CAPTCHAs: Визуални проверки като последна линия на защита

Често срещани anti-bot доставчици включват 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, и може да върне challenge като успех. Вижте ръководството за Smart Fetch за пълно описание.

Как FourA помага на всеки слой

Реалистични заявки на мрежово ниво

Единичният endpoint (POST /api/single/) излъчва handshake характеристики, които съвпадат с реален браузър. Това преминава най-често срещаните проверки на мрежово ниво без натоварването от стартиране на пълен браузър.

Активирайте unblocker, за да инжектирате също реалистични браузърни header-и (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. В комбинация с anti-detection пачове, той преминава повечето базирани на JavaScript проверки на отпечатъци (fingerprint). unblocker за браузър активира автоматичния инструмент за преодоляване на защити (преминаване на Turnstile и подобни прегради); оставете го включено, освен ако не искате да получите обратно суровата страница с предизвикателството (challenge page).

Ротация на proxy

Proxy endpoint-ът (POST /api/proxy/) автоматично превключва между residential и data center проксита. Ако дадено IP бъде блокирано, следващият опит използва различно. Използвайте ignoreProxies при последващо извикване, за да пропуснете изходи, които вече сте изчерпали; използвайте maxTries (по подразбиране 5, максимум 90), за да контролирате колко интензивно работи.

Изходи, ограничени по държава

Подайте exitCountries в /api/proxy/, за да ограничите избора до проксита, чиято видима за целта държава съвпада със строг списък с позволени (allowlist). Стойностите са двубуквени кодове (["CZ", "GB"]), изчистени от интервали, с главни букви и дедуплицирани. FourA никога не преминава към неизискана държава; ако в текущия пул няма съвпадение, response-ът връща 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, когато е заявено определяне на обхвата. Проверете дали принадлежи към вашия списък с разрешени, преди да се доверите на полезния товар, след което използвайте повторно върнатия proxy ID при всяко последващо извикване на браузъра, за да може рендирането на JavaScript да се случи през същия изход.

FourA ви казва какво ви е спряло

Не е нужно да гадаете коя система е блокирала даден request. Когато целта изпълни проверка за ботове, отговорът я посочва.

  • 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>"
  }
}

От това следват две правила:

  1. solved: false означава, че тялото може да е предизвикателството, а не страницата. FourA никога не представя нерешено предизвикателство като съдържание, така че проверете флага преди парсване.
  2. Решението ви дава достъп. Когато присъства defense.cookie, изпратете го обратно като Cookie header на същия изход със същия User-Agent и последващите requests ще пропуснат проверката напълно.

FourA разпознава Cloudflare, SiteGround, DataDome, PerimeterX, Akamai, Incapsula, AWS WAF, hCaptcha, reCAPTCHA и собственото предизвикателство на eBay. Разпознаването е по-широко от решаването: система, която можем да назовем, но не и да решим, се отчита и никога не променя цената на request. Вижте Anti-Bot Defenses за всяко поле, текущото разделение между clear и detect, и пример за повторение.

Стратегия според нивото на защита

Неизвестна защита

Използвайте auto. То първо тества евтино и ескалира само доколкото целта го налага, така че плащате за откриването веднъж на хост.

Ниска защита (повечето сайтове)

Използвайте единичния endpoint с unblocker. Съвпадението на мрежово ниво е достатъчно.

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)

Използвайте 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 към браузър.

Добри практики

  1. Започнете с auto за неизвестни цели. Подайте правило validate, оставете стълбицата да избере най-евтиното стъпало, след което прочетете meta.rung в response, за да видите кой двигател е сработил. След като разберете, извиквайте този двигател директно за повторен трафик.

  2. Използвайте отново успешната сесия. След извикване на auto, върнатият session (proxy ID + cookies + userAgent) може да бъде възпроизведен чрез /api/single/ или /api/browser/ за последващи страници на същия хост на цената на Single.

  3. Спазвайте rate limits. Дори при ротация на proxy, изпращането на стотици requests в секунда към един сайт ще задейства поведенческо засичане. Разпределете вашите requests през интервал от поне 1 до 2 секунди.

  4. Оставете unblocker включено. За Single, Proxy и Browser requests, unblocker: true (по подразбиране) инжектира реалистични браузърни headers автоматично. Изключвайте го само когато изрично се нуждаете от обикновен клиентски подпис или сурова страница с предизвикателство.

  5. Следете процента на успеваемост. Проверете метриките в Dashboard, за да проследите вашия процент на успеваемост във времето. Внезапен спад обикновено означава, че целевият сайт е актуализирал защитата си.

  6. Пропускайте изгорели изходи. Ако извикване на /api/proxy/ или /api/auto/ е върнало proxy ID, което след това е започнало да се проваля, подайте го в ignoreProxies при следващото извикване, за да може FourA да избере различен изход.

  7. Прочетете defense преди повторен опит. Името на доставчика ви показва дали си струва да опитате различен профил на браузъра, дали имате нужда от пълен рендър или дали проверката е такава, която никой не преминава без услуга за решаване.

  8. Променете представения браузър. Някои цели приемат един браузър и отказват друг. Задайте browser, os или version на Single и Proxy и прочетете GET /api/profiles за текущия каталог. Подробности в endpoint reference.

Какво FourA не може да заобиколи

Някои сценарии изискват допълнителна обработка извън API:

  • Съдържание защитено с вход: FourA не управлява дълготрайни сесии вместо вас. Този browser endpoint приема cookies за всяка request; подавайте сами вашите session cookies.
  • Интерактивни CAPTCHAs: reCAPTCHA и hCaptcha се нуждаят от услуга за решаване. FourA разпознава и двете и ги отчита в defense.present, но не ги преминава. Turnstile се обработва от Browser.
  • Географски ограничено съдържание: използвайте exitCountries на /api/proxy/, за да фиксирате избора до разрешени държави. Сайтове, които допълнително ограничават по ISP или ASN (някои лицензирани в съответната страна букмейкъри, определени правителствени услуги), все още могат да блокират общи residential изходи; тази request връща no_eligible_proxy, когато текущият пул няма съвпадащ изход.
  • Сайтове със законови ограничения: Винаги се уверявайте, че събирането на данни е в съответствие с условията за ползване на целевия сайт и приложимото законодателство.

Следващи стъпки

Обновено: 12 август 2026 г.