Защити срещу ботове

Когато целта изпълни проверка за ботове по пътя към заявената от вас страница, FourA ви уведомява. Всяка заявка, която срещне такава проверка, се връща с поле, посочващо системата, дали проверката е премината успешно, и (при успех) разрешението, което можете да използвате повторно, за да може следващото извикване да я пропусне.

Тази страница е справочник за тези полета. За стратегия вижте Работа със защита срещу ботове.

Къде се намира полето

Endpoint Поле Налично при
POST /api/single/ defense (обект) Разпозната е проверка за ботове в response
POST /api/proxy/ defense (обект) Същото, докладвано от опита, който е отговорил
POST /api/browser/ defenseSolved (булева стойност) и defenses (обект) Разпозната е проверка за ботове по време на зареждането на страницата
POST /api/auto/ meta.solved (булева стойност) Винаги. true, когато проверка е премината някъде по веригата.

Липсата означава, че не е разпознато нищо. Не приемайте липсващ defense като неуспех.

Отчитането изисква unblocker, което е включено по подразбиране. С unblocker: false вие сте заявили страницата точно както е получена, така че Single връща предизвикателството недокоснато, а Browser го рендира без да го решава.

defense при Single и Proxy

{
  "status": 200,
  "data": "<!doctype html>...",
  "total_time": 3.61,
  "defense": {
    "vendor": "sgcaptcha",
    "solved": true,
    "present": ["sgcaptcha"],
    "ms": 3412,
    "hashes": 1048576,
    "complexity": 20,
    "cookie": "_I_=<clearance>"
  }
}
Поле Тип Описание
vendor string Системата, за която се отнася този запис: тази, която е премината, или основната срещната. Вижте списъка с доставчици по-долу.
solved boolean true означава, че проверката е премината и data е реалната страница. false означава, че data може да е страницата с предизвикателството.
present string[] Всяка система, разпозната в този response. Може да съдържа повече имена от vendor и може да съдържа имена, които все още никой не преминава.
ms number Милисекунди, прекарани в преминаване на проверката. Само при успешно преминаване.
hashes number Колко изчислителна работа е изискало предизвикателството. Само при успешно преминаване.
complexity number Трудността, декларирана от предизвикателството. Само при успешно преминаване и само когато предизвикателството отчита такава.
answers number Колко приети отговора са предоставени, за предизвикателства, които изискват няколко, а не един. Само при успешно преминаване.
cookie string Полученото разрешение, готово за повторно използване. Само при успешно преминаване.

solved: false е случаят, при който си струва да се направи разклоняване. FourA никога не представя нерешено предизвикателство като съдържание, така че флагът е вашият сигнал, че body се нуждае от ескалация, а не от парсване.

defenses на браузър

{
  "status": 200,
  "body": "<!doctype html>...",
  "userAgent": "Mozilla/5.0...",
  "defenseSolved": true,
  "defenses": {
    "present": ["cloudflare"],
    "cleared": ["cloudflare"]
  }
}
Поле Тип Описание
defenseSolved boolean true когато по време на зареждането е срещната система и нейното преминаване се запазва на финалната страница. Това е флагът, който решава дали заявката струва 15 или 30 кредита.
defenses.present string[] Всяка система, разпозната в който и да е момент по време на зареждането на страницата, а не само във финалния response. Проверката е нещо, което се е случило, и докато пристигне реалната страница, response за предизвикателството отдавна е изчезнал.
defenses.cleared string[] Системите, чието преминаване се съдържа във финалната страница.

Име в present, което никога не достига до cleared, е система, която FourA може да разпознае, но все още не може да преодолее. Те никога не повишават цената на заявка.

Доставчици

Стойност vendor Системата
cloudflare Предизвикателства на Cloudflare и управление на ботове
sgcaptcha Проверка на сайта от SiteGround
datadome DataDome
perimeterx PerimeterX
akamai Akamai Bot Manager
incapsula Imperva Incapsula
awswaf Предизвикателство от AWS WAF
ebay-splashui Собствено предизвикателство на eBay
hcaptcha hCaptcha
recaptcha reCAPTCHA

Какво се преодолява днес

Endpoint Преодолява
Single, Proxy sgcaptcha, ebay-splashui. И двете са изчислителни, а не визуални, така че не участва браузър.
Browser cloudflare, sgcaptcha

Всичко останало в списъка се разпознава и отчита, и нищо повече. Това разделение се променя, тъй като FourA се учи да преодолява повече от тях, така че четете solved, вместо да предполагате от тази таблица.

Две бележки за крайните случаи:

  • hcaptcha и recaptcha са също така обикновени уиджети във формуляри. Те се отчитат само когато response действително ви е блокирал (403, 429 или 503), така че страница за плащане с поле за captcha във формуляр не отчита защита.
  • Да бъдете зад Cloudflare не е защита. cloudflare се появява, когато има реално предизвикателство или артефакт за управление на ботове в response, а не защото даден сайт използва Cloudflare.

Повторно използване на преминаване

defense.cookie е целият смисъл на полето. Преминаването е обвързано с изхода, който го е спечелил, и с User-Agent, който го е спечелил, така че го възпроизведете през същата двойка и проверката няма да се стартира отново.

import requests

API = "https://eu.api.foura.ai"
H = {"X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"}

# 1) First call pays for the clear.
first = requests.post(f"{API}/api/proxy/", headers=H, json={
    "maxTries": 5,
    "request": {"method": "GET", "url": "https://example.com/catalog"},
}).json()

defense = first.get("defense", {})
if defense.get("solved"):
    clearance = defense["cookie"]
    exit_id = first["proxy"]

    # 2) Follow-up pages skip the check: same exit, same clearance.
    for page in range(2, 6):
        r = requests.post(f"{API}/api/single/", headers=H, json={
            "method": "GET",
            "url": f"https://example.com/catalog?page={page}",
            "proxy": exit_id,
            "headers": [["Cookie", clearance]],
        }).json()
        print(page, r["status"])

Първото извикване носи цената на изчистването. Всяко повторение е обикновена заявка на стандартна цена.

Три неща могат да провалят повторението:

  1. Различен изход. Фиксирайте proxy ID, което response от изчистването е върнал. Вижте Повторно използване на Proxy в заявки.
  2. Различен User-Agent. Browser responses връщат userAgent, който са използвали. Изпратете го обратно заедно с cookie.
  3. Изтичане. Изчистванията имат собствен живот, зададен от целта. За SiteGround той е около 30 дни за целия сайт; изчистване от Cloudflare обикновено е много по-кратко. Третирайте изчистването като кеш: когато повторенията започнат отново да връщат предизвикателства, изпълнете едно ново извикване и вземете новото.

Колко струва

Изчистената проверка променя цената само за Browser:

Engine Базова Изчистена защита
Single 1 (2 с unblocker) Без промяна
Proxy 5 (10 с unblocker) Без промяна
Browser 15 30

Browser таксува 30 само когато solver е включен и системата е реално изчистена. Система, която е разпозната, но не е изчистена, струва 15, колкото и страница без никаква проверка на нея.

Комбинирайте го с validate

defense ви казва, че е срещната проверка. validate казва на FourA как изглежда истинската страница, което позволява на дадена request да се провали, вместо да ви даде междинна страница, която случайно връща HTTP 200.

{
  "method": "GET",
  "url": "https://example.com/product/42",
  "validate": {
    "data": {"accept": ["Add to cart"], "fail": ["Just a moment"]}
  }
}

В POST /api/auto/, validate е това, което спира стълбицата да приеме страница с предизвикателство и да я отчете като завършена.

Свързани

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