Redirect-Ketten bringen Scraper zum Absturz. Binäre Responses werden beschädigt, wenn sie als Text decodiert werden. Zwei Probleme, die ständig auftreten, sobald du die Phase „Seite abrufen, HTML parsen“ hinter dir hast.
Wir haben zwei neue Request-Optionen veröffentlicht, um beide Probleme zu lösen: followRedirects und returnBuffer. Sie sind ab sofort in der API verfügbar.
Wie es funktioniert
Redirect-Steuerung mit followRedirects
Die meisten Scraping-APIs behandeln Redirects als Boolean: Entweder man folgt ihnen oder nicht. Das funktioniert so lange, bis du auf eine Redirect-Schleife stößt oder die zwischengeschaltete 302-Response selbst benötigst, um einen Tracking-Parameter zu extrahieren.
Das followRedirects von FourA erwartet eine Ganzzahl zwischen 0 und 20. Wenn du es weglässt (oder auf 0 setzt), erhältst du die rohe Redirect-Response inklusive aller Header zurück. Setzt du es auf 5, folgt der Request bis zu fünf Hops, bevor das Endergebnis zurückgegeben wird.
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/short-link",
"followRedirects": 3,
"unblocker": true
}'
Dies folgt bis zu drei Redirects. Wenn die Kette nach zwei Hops endet, erhältst du die finale Seite. Wenn sie länger als drei ist, erhältst du das Ergebnis des dritten Hops.
Dieser Unterschied ist wichtiger, als man denkt. E-Commerce-Seiten leiten über Tracking-URLs weiter, bevor sie auf der Produktseite landen. Diesen willst du folgen. Affiliate-Netzwerke und URL-Shortener erzeugen jedoch manchmal Ketten, die sechs, sieben oder acht Hops tief gehen. Und manche Redirect-Schleifen enden nie. Die Begrenzung auf eine bestimmte Anzahl sorgt dafür, dass du Daten sammelst, ohne in einer Endlosschleife hängenzubleiben, die dein Request-Timeout aufbraucht.
Zuvor bestand der Workaround darin, einen Request mit deaktivierten Redirects zu senden, den Location-Header manuell zu parsen und einen weiteren Request zu senden. Das bedeutet mindestens zwei API-Aufrufe, die doppelte Latenz und Code, den du warten musst. Jetzt ist es ein einziger Aufruf mit einer Zahl.
Rohe Binär-Responses mit returnBuffer
Wenn du Bilder, PDFs oder Protobuf-Payloads sammelst, zerstört die Textdecodierung die Daten. Die HTTP-Bibliothek nimmt an, dass die Response Text ist, wendet eine Zeichensatzerkennung an und beschädigt stillschweigend jedes Byte, das nicht passt. Protobuf wird unlesbar. Bild-Header gehen kaputt. Am Ende hast du beschädigte Dateien und keine eindeutige Fehlermeldung, die das erklärt.
returnBuffer weist die API an, die Textdecodierung komplett zu überspringen.
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product-image.jpg",
"returnBuffer": true
}'
Der Response-Body wird als rohe Bytes zurückgegeben (Base64-codiert in JSON-Responses). Decodiere ihn auf deiner Seite und du hast exakt das, was der Server gesendet hat. Keine Zeichensatz-Annahmen, keine Codierungskonvertierung, keine stillschweigende Beschädigung.
Dies war eines der häufigeren Support-Tickets bei uns: Nutzer, die Produktbilder oder PDF-Kataloge sammelten und Dateien erhielten, die sich nicht öffnen ließen. Die Lösung war immer dieselbe, aber jetzt gibt es dafür ein Flag statt eines Workarounds.
Auswirkungen
Beide Features reduzieren die Anzahl der API-Aufrufe pro Job. followRedirects eliminiert manuelle Schleifen zur Redirect-Verfolgung. returnBuffer eliminiert den Zyklus aus „Abrufen, feststellen, dass es beschädigt ist, mit anderen Einstellungen erneut abrufen“.
Bei Redirect-intensiven Targets (Affiliate-Links, URL-Shortener, E-Commerce-Tracking-Ketten) haben wir in ersten Tests einen Rückgang der Request-Zahlen um 40–60 % gesehen, wenn Nutzer von manueller Redirect-Verarbeitung auf followRedirects umsteigen. Und bei Aufgaben zur Erfassung binärer Daten (Produktbilder, Dokumentendownloads) macht returnBuffer einen mehrstufigen Workaround zu einer einzigen Option (erste Ergebnisse).
Das sind keine spektakulären Features. Es sind Dinge, an die du erst denkst, wenn dein Scraper um 3 Uhr nachts abstürzt, weil eine Website einen zusätzlichen Redirect-Hop in ihren Checkout-Flow eingebaut hat.
Für Power-User
Kombiniere followRedirects mit Response-Validierung für eine präzise Kontrolle über Redirect-Ketten. Folge Redirects, aber lasse den Request fehlschlagen, wenn das finale Ziel blockiert wird:
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product/12345",
"followRedirects": 5,
"unblocker": true,
"validate": {
"status": { "fail": [403, 503] },
"data": { "fail": ["Access Denied", "captcha"] }
}
}'
Dies folgt bis zu fünf Redirects und prüft dann die finale Response. Wenn die Website dich auf eine CAPTCHA-Seite oder eine Zugriff-verweigert-Meldung weitergeleitet hat, schlägt der Request sauber fehl. Keine fehlerhaften Daten, die du im Nachgang filtern musst.
Kombiniere bei der Erfassung binärer Daten returnBuffer mit HEAD-Requests, wenn du Content-Types prüfen musst, bevor du große Dateien herunterlädst. FourA verarbeitet HEAD korrekt (was interne, typische libcurl-Fehler verhindert), sodass du Header untersuchen kannst, ohne den Body abzurufen. Prüfe den Content-Type, entscheide, ob sich der Download lohnt, und sende dann den vollständigen Request mit returnBuffer: true.
Und wenn du Browser-Tasks für JavaScript-intensive Targets nutzt, beachte, dass diese Optionen für die direkte HTTP-Engine gelten. Browser-Requests verarbeiten Redirects über die integrierte Navigation von Chrome, die ihnen standardmäßig ohne Begrenzung folgt.
Was als Nächstes kommt
Wir arbeiten daran, mehr Steuerungsmöglichkeiten auf Request-Ebene über die API bereitzustellen: benutzerdefinierte DNS-Auflösung, Timeout-Feineinstellung pro Phase und Optionen zur Zertifikatsbehandlung. Das Ziel ist die volle Leistungsfähigkeit von curl-impersonate über ein sauberes REST-Interface – ohne den Infrastruktur-Overhead.
Wenn du eine bestimmte Option benötigst, lass es uns wissen. Das Dashboard zeigt bereits, wie deine Requests mit diesen neuen Optionen abschneiden, sodass du den Unterschied selbst messen kannst.