Umgang mit Anti-Bot-Schutz
Moderne Websites nutzen fortschrittliche Bot-Erkennung. Diese Anleitung erklärt, wie FourA Anti-Bot-Systeme handhabt und wie du deine Erfolgsquote maximierst.
Wie Bot-Erkennung funktioniert
Websites verwenden mehrere Schutzebenen:
- IP-Reputation: Rechenzentren und bekannte Proxy-Adressen werden blockiert
- Wire-Fingerprinting: Jeder HTTP-Client hat eine eindeutige Handshake-Signatur, die Seiten erkennen können
- Browser-Fingerprinting: JavaScript prüft auf Indikatoren für headless Browser
- Verhaltensanalyse: Request-Muster, Timing und Navigationsfluss
- CAPTCHAs: Visuelle Herausforderungen als letzte Verteidigungslinie
Zu den gängigen Anti-Bot-Anbietern gehören Cloudflare, DataDome, PerimeterX und Akamai Bot Manager.
Schnellster Weg: Auto
Wenn du das Schutzniveau noch nicht kennst, rufe /api/auto/ mit einem validate.data.accept Substring auf, den nur die echte Seite enthält. Auto durchläuft eine kostenbewusste Leiter (günstiger Test, rotierender Proxy, Browser-Rendering, Browser über Proxy) und stoppt bei der ersten Stufe, die eine Response zurückgibt, die deine Regeln akzeptieren. Bei wiederholten Aufrufen desselben Hosts wird stattdessen eine warme Sitzung abgespielt, sodass der zweite Treffer günstig ist.
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"]}}
}'
Ohne validate.data.accept kann auto keinen echten 200er-Status von einem Challenge-Interstitial mit Status 200 unterscheiden und gibt die Challenge möglicherweise als Erfolg zurück. Siehe Smart Fetch guide für die vollständige Anleitung.
Wie FourA auf jeder Ebene hilft
Realistische Wire-Level Requests
Der einzelne endpoint (POST /api/single/) sendet Handshake-Eigenschaften, die einem echten Browser entsprechen. Dies besteht die häufigsten Wire-Level-Prüfungen ohne den Overhead eines vollständigen Browsers.
Aktiviere unblocker, um realistische Browser-header (User-Agent, Sec-Ch-Ua, Sec-Fetch-*, Accept-Encoding) einzufügen. unblocker ist standardmäßig aktiviert. Setze false, um nur eine einfache Client-Signatur zu senden.
{
"method": "GET",
"url": "https://protected-site.com/data",
"unblocker": true
}
Echtes Browser-Rendering
Der Browser-Endpoint (POST /api/browser/) führt eine vollständige Chrome-Browser-Instanz aus. Kombiniert mit Anti-Detection-Patches besteht er die meisten JavaScript-basierten Fingerprint-Prüfungen. unblocker beim Browser löst den Auto-Defense-Solver aus (Turnstile-Clearance und ähnliche Gates). Lass es aktiviert, es sei denn, du willst die rohe Challenge-Seite zurückbekommen.
Proxy-Rotation
Der Proxy-Endpoint (POST /api/proxy/) rotiert automatisch durch Residential- und Data-Center-Proxys. Wenn eine IP blockiert wird, verwendet der nächste Versuch eine andere. Verwende ignoreProxies in einem Folgeaufruf, um Exits zu überspringen, die du bereits verbrannt hast. Verwende maxTries (Standard 5, maximal 90), um die Intensität zu steuern.
Länderspezifische Exits
Übergebe exitCountries an /api/proxy/, um die Auswahl auf Proxys zu beschränken, deren für das Ziel sichtbares Land einer strikten Allowlist entspricht. Werte sind Zwei-Buchstaben-Codes (["CZ", "GB"]), getrimmt, in Großbuchstaben umgewandelt und dedupliziert. FourA weicht niemals auf ein nicht angefordertes Land aus. Wenn der aktuelle Pool keinen Treffer enthält, liefert die Response code: "no_eligible_proxy" mit dem normalisierten Scope in details.exitCountries zurück, sodass du es später erneut versuchen kannst, ohne die Anforderungen zu lockern.
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"}
}'
Die Response enthält exitCountry, wenn Scoping angefordert wurde. Stelle sicher, dass es zu deiner Allowlist gehört, bevor du dem Payload vertraust. Verwende dann die zurückgegebene proxy ID bei jedem nachfolgenden Browser-Aufruf wieder, damit das JavaScript-Rendering über denselben Exit erfolgt.
FourA sagt dir, was dich blockiert hat
Du musst nicht raten, welches System einen Request blockiert hat. Wenn ein Ziel einen Bot-Check durchführt, wird dieser in der Response benannt.
POST /api/single/undPOST /api/proxy/geben eindefenseObjekt zurück:defense.vendorist das System,defense.solvedgibt an, ob der Check bestanden wurde, unddefense.presentlistet alles auf, was in dieser Response erkannt wurde.POST /api/browser/gibtdefenseSolvedplusdefenses.presentunddefenses.clearedzurück.
{
"status": 200,
"data": "<!doctype html>...",
"defense": {
"vendor": "sgcaptcha",
"solved": true,
"present": ["sgcaptcha"],
"cookie": "_I_=<clearance>"
}
}
Daraus folgen zwei Regeln:
solved: falsebedeutet, dass der Body die Challenge sein kann, nicht die Seite. FourA tarnt eine ungelöste Challenge niemals als Content, prüfe also das Flag vor dem Parsen.- Eine Lösung gibt dir die Freigabe. Wenn
defense.cookievorhanden ist, sende es alsCookie-Header über denselben Exit und mit demselben User-Agent zurück, und die folgenden Requests überspringen die Prüfung vollständig.
FourA erkennt Cloudflare, SiteGround, DataDome, PerimeterX, Akamai, Incapsula, AWS WAF, hCaptcha, reCAPTCHA und die eigene Challenge von eBay. Erkennen ist weiter gefasst als Lösen: Ein System, das wir benennen, aber nicht lösen können, wird gemeldet und ändert nie die Kosten des Requests. Siehe Anti-Bot Defenses für jedes Feld, die aktuelle Aufteilung zwischen Clear und Detect sowie ein Replay-Beispiel.
Strategie nach Schutzlevel
Unbekannter Schutz
Verwende auto. Es testet zuerst günstig und eskaliert nur so weit, wie es das Ziel erzwingt, sodass du für die Entdeckung einmal pro Host bezahlst.
Niedriger Schutz (die meisten Seiten)
Verwende den einzelnen Endpoint mit unblocker. Der Wire-Level Match reicht aus.
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}'
Mittlerer Schutz (Cloudflare, einfache WAF)
Verwende den Browser-Endpoint, um JavaScript-Challenges zu bestehen:
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}'
Hoher Schutz (DataDome, PerimeterX)
Verwende den proxy endpoint mit mehreren Wiederholungsversuchen:
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
}
}'
Für verkettete WAF-Herausforderungen (Cloudflare "Just a moment", Vercel Security Checkpoint, Akamai Bot Manager), bei denen du die gerenderte Seite nach dem Lösen der Herausforderung benötigst, siehe die MCP-Rezepte. Das Rezept "Protected page: proxy first, browser when JavaScript is needed" zeigt die genaue Übergabe vom Proxy zum Browser.
Best Practices
Starte mit auto für unbekannte Ziele. Übergebe eine
validate-Regel, lass die Ladder die günstigste Stufe wählen und lies dannmeta.rungin der Response, um zu sehen, welche Engine funktioniert hat. Sobald du das weißt, rufe diese Engine für wiederholten Traffic direkt auf.Nutze die erfolgreiche Session wieder. Nach einem auto-Aufruf können die zurückgegebenen
session(Proxy-ID + Cookies + User-Agent) über/api/single/oder/api/browser/für Folgeseiten auf demselben Host zum Single-Preis wiederverwendet werden.Beachte Rate Limits. Selbst mit Proxy-Rotation löst das Senden von Hunderten Requests pro Sekunde an eine einzige Website eine Verhaltenserkennung aus. Lass zwischen deinen Requests mindestens 1 bis 2 Sekunden Abstand.
Lass
unblockeraktiviert. Bei Single-, Proxy- und Browser-Requests injiziertunblocker: true(der Standardwert) automatisch realistische Browser-Header. Schalte es nur aus, wenn du explizit eine einfache Client-Signatur oder eine rohe Herausforderungsseite benötigst.Überwache Erfolgsraten. Überprüfe die Metriken im Dashboard, um deine Erfolgsrate im Laufe der Zeit zu verfolgen. Ein plötzlicher Abfall bedeutet meist, dass die Zielseite ihren Schutz aktualisiert hat.
Überspringe verbrannte Exits. Wenn ein
/api/proxy/- oder/api/auto/-Aufruf eine Proxy-ID zurückgab, die dann fehlschlug, übergebe sie beim nächsten Aufruf inignoreProxies, damit FourA einen anderen Exit wählt.Lies
defensevor einem Retry. Der Name des Anbieters sagt dir, ob es sich lohnt, ein anderes Browser-Profil zu versuchen, ob du ein vollständiges Rendering benötigst oder ob es eine Prüfung ist, die ohne einen Solving-Service nicht bestanden wird.Wechsle den präsentierten Browser. Einige Ziele akzeptieren einen Browser und lehnen einen anderen ab. Setze
browser,osoderversionbei Single und Proxy und liesGET /api/profilesfür den aktuellen Katalog. Details in der Endpoint-Referenz.
Was FourA nicht umgehen kann
Einige Szenarien erfordern zusätzliches Handling außerhalb der API:
- Login-geschützte Inhalte: FourA verwaltet keine langlebigen Logins für dich. Der Browser-Endpoint akzeptiert
cookiespro Request; übergib deine Session-Cookies selbst. - Interaktive CAPTCHAs: reCAPTCHA und hCaptcha erfordern einen Solving-Service. FourA erkennt beide und meldet sie in
defense.present, löst sie aber nicht. Turnstile wird vom Browser verarbeitet. - Geobeschränkte Inhalte: Nutze
exitCountriesauf/api/proxy/, um die Auswahl auf erlaubte Länder einzugrenzen. Websites, die zusätzlich nach ISP oder ASN filtern (einige länderspezifische Buchmacher, bestimmte Regierungsdienste), blockieren möglicherweise immer noch generische Residential-Exits; der Request gibtno_eligible_proxyzurück, wenn der aktuelle Pool keinen passenden Exit hat. - Websites mit rechtlichen Einschränkungen: Stelle immer sicher, dass deine Datenerfassung den Nutzungsbedingungen der Ziel-Website und geltendem Recht entspricht.
Nächste Schritte
- Smart Fetch (Auto): Tieferer Einblick in
/api/auto/ - Den richtigen Endpoint wählen: Entscheidungshilfe für Endpoints
- Häufige Probleme: 403-Fehler und CAPTCHA-Blockierungen beheben
- API-Endpoints: Vollständige Parameter-Referenz inklusive
exitCountries - Anti-Bot-Maßnahmen: Das
defenseFeld, die Anbieterliste und Clearance Replay - MCP-Rezepte: Workflow-Templates inklusive der Proxy-First-Then-Browser-Kette