Obsługa ochrony antybotowej
Nowoczesne strony internetowe używają zaawansowanego wykrywania botów. Ten przewodnik wyjaśnia, jak FourA radzi sobie z systemami anti-bot i jak zmaksymalizować wskaźnik sukcesu.
Jak działa wykrywanie botów
Strony internetowe wykorzystują kilka warstw ochrony:
- Reputacja IP: Centra danych i znane adresy proxy są blokowane
- Wire fingerprinting: Każdy klient HTTP ma unikalną sygnaturę handshake, którą strony mogą wykryć
- Browser fingerprinting: JavaScript sprawdza wskaźniki przeglądarek typu headless
- Analiza behawioralna: Wzorce żądań, timing i przepływ nawigacji
- CAPTCHA: Wyzwania wizualne jako ostatnia linia obrony
Popularni dostawcy rozwiązań anti-bot to Cloudflare, DataDome, PerimeterX i Akamai Bot Manager.
Najszybsza ścieżka: Auto
Jeśli nie znasz jeszcze poziomu ochrony, wywołaj /api/auto/ z podciągiem validate.data.accept, który posiada tylko prawdziwa strona. Tryb Auto przechodzi przez drabinę świadomą kosztów (tania próba, rotowane proxy, renderowanie w przeglądarce, przeglądarka przez proxy) i zatrzymuje się na pierwszym szczeblu, który zwraca response akceptowany przez twoje reguły. Przy ponownych wywołaniach do tego samego hosta odtwarzana jest zamiast tego ciepła sesja, dzięki czemu drugie zapytanie jest tanie.
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"]}}
}'
Bez validate.data.accept, tryb auto nie potrafi odróżnić prawdziwego statusu 200 od ekranu weryfikacji (challenge) zwracanego ze statusem 200 i może uznać weryfikację za sukces. Zobacz przewodnik Smart Fetch, aby uzyskać pełne instrukcje.
Jak FourA pomaga na każdej warstwie
Realistyczne żądania na poziomie sieci
Pojedynczy endpoint (POST /api/single/) emituje charakterystyki handshake odpowiadające prawdziwej przeglądarce. Pozwala to przejść większość popularnych weryfikacji na poziomie sieci bez narzutu wynikającego z uruchamiania pełnej przeglądarki.
Włącz unblocker, aby wstrzykiwać również realistyczne nagłówki przeglądarki (User-Agent, Sec-Ch-Ua, Sec-Fetch-*, Accept-Encoding). Opcja unblocker jest domyślnie włączona; ustaw false tylko po to, aby wysłać zwykłą sygnaturę klienta.
{
"method": "GET",
"url": "https://protected-site.com/data",
"unblocker": true
}
Renderowanie w prawdziwej przeglądarce
Endpoint browser (POST /api/browser/) uruchamia pełną instancję przeglądarki Chrome. W połączeniu z łatkami antydetekcyjnymi przechodzi większość testów fingerprintingowych opartych na JavaScript. unblocker w Browser uruchamia automatyczne rozwiązywanie zabezpieczeń (weryfikacje Turnstile i podobne bramy); zostaw to włączone, chyba że chcesz otrzymać surową stronę z wyzwaniem.
Rotacja proxy
Endpoint proxy (POST /api/proxy/) automatycznie rotuje przez proxy rezydencyjne i datacenter. Jeśli jedno IP zostanie zablokowane, następna próba użyje innego. Użyj ignoreProxies w kolejnym wywołaniu, aby pominąć węzły wyjściowe, które już spaliłeś; użyj maxTries (domyślnie 5, maks. 90), aby kontrolować liczbę ponowień.
Węzły wyjściowe ograniczone do kraju
Przekaż exitCountries w /api/proxy/, aby ograniczyć wybór do proxy, których kraj widoczny dla celu pasuje do ścisłej białej listy. Wartości to dwuliterowe kody (["CZ", "GB"]), pozbawione białych znaków, zamienione na wielkie litery i zdeduplikowane. FourA nigdy nie używa nieżądanego kraju; jeśli w obecnej puli nie ma dopasowania, odpowiedź zwraca code: "no_eligible_proxy" ze znormalizowanym zakresem w details.exitCountries, dzięki czemu możesz spróbować ponownie później bez obniżania wymagań.
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"}
}'
Odpowiedź zawiera exitCountry, gdy zażądano określenia zakresu. Zweryfikuj, czy znajduje się na Twojej allowlist przed zaufaniem danym z payloadu, a następnie użyj ponownie zwróconego ID proxy w każdym kolejnym wywołaniu przeglądarki, aby renderowanie JavaScript odbywało się przez ten sam węzeł wyjściowy.
FourA informuje, co zablokowało request
Nie musisz zgadywać, który system zablokował request. Gdy cel weryfikuje ruch pod kątem botów, odpowiedź zawiera jego nazwę.
POST /api/single/orazPOST /api/proxy/zwracają obiektdefense:defense.vendorto system,defense.solvedokreśla, czy weryfikacja zakończyła się sukcesem, adefense.presentwymienia wszystko, co rozpoznano w tej odpowiedzi.POST /api/browser/zwracadefenseSolvedorazdefenses.presentidefenses.cleared.
{
"status": 200,
"data": "<!doctype html>...",
"defense": {
"vendor": "sgcaptcha",
"solved": true,
"present": ["sgcaptcha"],
"cookie": "_I_=<clearance>"
}
}
Wynikają z tego dwie zasady:
solved: falseoznacza, że w body może znajdować się wyzwanie (challenge), a nie właściwa strona. FourA nigdy nie maskuje nierozwiązanego wyzwania jako treści strony, dlatego przed parsowaniem zawsze sprawdź flagę.- Rozwiązanie daje poświadczenie. Jeśli obecny jest
defense.cookie, odeślij go jako headerCookieprzez ten sam exit z tym samym User-Agent, a kolejne requesty całkowicie pominą etap sprawdzania.
FourA rozpoznaje Cloudflare, SiteGround, DataDome, PerimeterX, Akamai, Incapsula, AWS WAF, hCaptcha, reCAPTCHA oraz własne zabezpieczenia eBay. Rozpoznawanie działa szerzej niż omijanie (clearing): system, który potrafimy zidentyfikować, ale nie pominąć, jest odpowiednio raportowany i nigdy nie wpływa na koszt requestu. Zobacz dokumentację Anti-Bot Defenses, aby sprawdzić wszystkie pola, aktualny podział na wykrywanie i omijanie oraz przykład ponowienia żądania (replay).
Strategia według poziomu ochrony
Nieznana ochrona
Użyj trybu auto. Metoda ta najpierw wykonuje tanie testy i eskaluje tylko do poziomu wymuszonego przez cel, dzięki czemu płacisz za rozpoznanie tylko raz na hosta.
Niska ochrona (większość stron)
Użyj pojedynczego endpointu z unblocker. Dopasowanie na poziomie sieciowym (wire-level) jest wystarczające.
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}'
Średnia ochrona (Cloudflare, podstawowy WAF)
Użyj endpointu przeglądarki, aby przejść wyzwania 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}'
Wysoka ochrona (DataDome, PerimeterX)
Użyj endpointu proxy z wielokrotnymi próbami ponowienia:
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
}
}'
W przypadku połączonych wyzwań WAF (Cloudflare "Just a moment", Vercel Security Checkpoint, Akamai Bot Manager), gdzie po wyczyszczeniu wyzwania potrzebna jest wyrenderowana strona, zapoznaj się z Przepisami MCP. Przepis "Protected page: proxy first, browser when JavaScript is needed" pokazuje dokładne przekazanie z proxy do przeglądarki.
Najlepsze praktyki
Zacznij od auto dla nieznanych celów. Przekaż regułę
validate, pozwól drabinie wybrać najtańszy szczebel, a następnie odczytajmeta.rungw odpowiedzi (response), aby zobaczyć, który silnik zadziałał. Kiedy już wiesz, wywołuj ten silnik bezpośrednio przy powtarzającym się ruchu.Wykorzystuj ponownie zwycięską sesję. Po wywołaniu auto, zwrócone
session(ID proxy + cookies + userAgent) może zostać odtworzone przez/api/single/lub/api/browser/dla kolejnych stron na tym samym hoście, w cenie zapytania Single.Przestrzegaj rate limits. Nawet z rotacją proxy, wysyłanie setek żądań na sekundę do jednej witryny uruchomi detekcję behawioralną. Oddzielaj swoje żądania w czasie od siebie o co najmniej 1 do 2 sekund.
Pozostaw włączone
unblocker. W przypadku żądań Single, Proxy i Browser,unblocker: true(domyślnie) automatycznie wstrzykuje realistyczne nagłówki przeglądarki. Wyłącz to tylko wtedy, gdy wyraźnie potrzebujesz prostej sygnatury klienta lub surowej strony z wyzwaniem.Monitoruj wskaźniki sukcesu. Sprawdzaj metryki w Dashboardzie, aby śledzić swój wskaźnik sukcesu w czasie. Nagły spadek zazwyczaj oznacza, że docelowa witryna zaktualizowała swoje zabezpieczenia.
Pomijaj spalone wyjścia. Jeśli wywołanie
/api/proxy/lub/api/auto/zwróciło ID proxy, które następnie zaczęło zawodzić, przekaż je wignoreProxiesprzy następnym wywołaniu, aby FourA wybrało inne wyjście.Odczytaj
defenseprzed ponowną próbą. Nazwa dostawcy podpowiada, czy warto wypróbować inny profil przeglądarki, czy potrzebujesz pełnego renderowania, czy też sprawdzenie należy do takich, których nikt nie przejdzie bez usługi rozwiązującej.Zmieniaj prezentowaną przeglądarkę. Niektóre cele akceptują jedną przeglądarkę, a odrzucają inną. Ustaw
browser,oslubversiondla Single i Proxy, a następnie odczytajGET /api/profilesdla bieżącego katalogu. Szczegóły w referencji endpointu.
Czego FourA nie potrafi ominąć
Niektóre scenariusze wymagają dodatkowej obsługi poza API:
- Treści chronione logowaniem: FourA nie zarządza długotrwałymi sesjami logowania. Endpoint przeglądarki obsługuje
cookiesprzy każdym żądaniu; samodzielnie przekazuj swoje cookies sesyjne. - Interaktywne CAPTCHA: reCAPTCHA i hCaptcha wymagają usługi rozwiązującej. FourA rozpoznaje obie z nich i zgłasza je w
defense.present, ale ich nie rozwiązuje. Turnstile jest obsługiwane przez przeglądarkę. - Treści ograniczone geograficznie: użyj
exitCountriesw/api/proxy/, aby ograniczyć wybór do dozwolonych krajów. Witryny, które dodatkowo blokują na podstawie ISP lub ASN (niektórzy licencjonowani bukmacherzy, pewne usługi rządowe), mogą nadal blokować ogólne węzły residential; żądanie zwrócino_eligible_proxy, gdy obecna pula nie ma pasującego węzła wyjściowego. - Witryny z ograniczeniami prawnymi: Zawsze upewniaj się, że twoje gromadzenie danych jest zgodne z regulaminem docelowej witryny oraz obowiązującym prawem.
Następne kroki
- Smart Fetch (Auto): Szczegółowe informacje o
/api/auto/ - Wybór właściwego endpointu: Przewodnik wyboru endpointów
- Częste problemy: Rozwiązywanie błędów 403 i blokad CAPTCHA
- Endpointy API: Pełna lista parametrów zawierająca
exitCountries - Zabezpieczenia Anti-Bot: Pole
defense, lista dostawców i clearance replay - Przepisy MCP: Szablony przepływów pracy obejmujące łańcuch proxy-first-then-browser