Les chaînes de redirection cassent les scrapers. Les réponses binaires sont corrompues lorsqu'elles sont décodées sous forme de texte. Deux problèmes fréquents dès que vous dépassez l'étape élémentaire de récupération de page et de parsing HTML.
Nous avons déployé deux nouvelles options de requête pour traiter ces deux cas : followRedirects et returnBuffer. Elles sont disponibles dès maintenant sur l'API.
Fonctionnement
Contrôle des redirections avec followRedirects
La plupart des API de scraping gèrent les redirections avec un simple booléen : les suivre ou non. Cela fonctionne jusqu'à ce que vous rencontriez une boucle de redirection infinie, ou si vous avez besoin de la réponse 302 intermédiaire elle-même pour extraire un paramètre de tracking.
Le paramètre followRedirects de FourA accepte un entier entre 0 et 20. Omettez-le (ou définissez 0), et vous recevez la réponse de redirection brute, avec l'ensemble des headers. Définissez-le à 5, et la requête suit jusqu'à cinq sauts avant de renvoyer le résultat final.
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/short-link",
"followRedirects": 3,
"unblocker": true
}'
Cela suit jusqu'à trois redirections. Si la chaîne aboutit en deux étapes, vous obtenez la page finale. Si elle dépasse trois étapes, vous obtenez la réponse renvoyée par le troisième saut.
La nuance est plus importante qu'il n'y paraît. Les sites e-commerce redirigent souvent vers des URL de tracking avant d'arriver sur la page produit. Vous souhaitez suivre ces redirections. En revanche, les réseaux d'affiliation et les réducteurs d'URL créent parfois des chaînes de six, sept ou huit sauts. De plus, certaines boucles de redirection ne se terminent jamais. Limiter le nombre de sauts vous permet de collecter les données sans vous retrouver bloqué dans une boucle infinie qui épuise le timeout de votre requête.
Auparavant, l'alternative consistait à envoyer une requête sans redirection, à extraire manuellement l'en-tête Location, puis à envoyer une nouvelle requête. Cela représentait au moins deux appels API, une latence doublée et du code supplémentaire à maintenir. Désormais, un seul appel avec une valeur numérique suffit.
Réponses binaires brutes avec returnBuffer
Lorsque vous collectez des images, des PDF ou des payloads protobuf, le décodage textuel corrompt les données. La bibliothèque HTTP suppose que la réponse est du texte, applique une détection d'encodage et altère silencieusement chaque octet incompatible. Les données protobuf deviennent illisibles. Les en-têtes d'images sont endommagés. Vous vous retrouvez avec des fichiers corrompus sans aucun message d'erreur clair pour l'expliquer.
returnBuffer indique à l'API d'ignorer totalement le décodage textuel.
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product-image.jpg",
"returnBuffer": true
}'
Le corps de la réponse est renvoyé sous forme d'octets bruts (encodés en base64 dans les réponses JSON). Décodez-le de votre côté et vous obtenez exactement ce que le serveur a envoyé. Aucune supposition de charset, aucune conversion d'encodage, aucune corruption silencieuse.
C'était l'un des tickets de support les plus fréquents : des utilisateurs récupérant des images de produits ou des catalogues PDF et obtenant des fichiers corrompus. Le correctif était toujours le même, mais il existe désormais un flag dédié au lieu d'un contournement.
Impact
Ces deux fonctionnalités réduisent le nombre d'appels API par tâche. followRedirects élimine les boucles manuelles de suivi des redirections. returnBuffer élimine le cycle "récupérer, constater la corruption, récupérer à nouveau avec des paramètres différents".
Pour les cibles avec de nombreuses redirections (liens d'affiliation, raccourcisseurs d'URL, chaînes de suivi e-commerce), nous avons constaté une baisse de 40 à 60 % du nombre de requêtes lors des premiers tests, lorsque les utilisateurs passent d'une gestion manuelle des redirections à followRedirects. Et pour les tâches de collecte binaire (images de produits, téléchargements de documents), returnBuffer transforme un contournement en plusieurs étapes en une seule option (premiers résultats).
Ce ne sont pas des fonctionnalités tape-à-l'œil. C'est le genre de détail auquel vous ne pensez pas jusqu'à ce que votre scraper plante à 3 heures du matin parce qu'un site a ajouté un saut de redirection supplémentaire à son tunnel de commande.
Pour les utilisateurs avancés
Combinez followRedirects avec la validation de réponse pour un contrôle précis des chaînes de redirection. Suivez les redirections, mais faites échouer la requête si la destination finale rencontre un blocage :
curl -X POST "https://eu.api.foura.ai/v1/request" \
-H "X-API-Key: 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"] }
}
}'
Cela suit jusqu'à cinq redirections, puis vérifie la response finale. Si le site vous a redirigé vers une page de vérification ou un blocage d'accès, la request échoue proprement. Aucune donnée parasite à filtrer en aval.
Pour la collecte de fichiers binaires, associez returnBuffer à des requests HEAD lorsque vous devez vérifier les types de contenu avant de télécharger des fichiers volumineux. FourA gère HEAD correctement, ce qui vous permet d'inspecter les headers sans récupérer le body. Vérifiez le Content-Type, déterminez si le téléchargement est pertinent, puis effectuez la request complète avec returnBuffer: true.
Et si vous utilisez browser tasks pour des cibles riches en JavaScript, notez que ces options s'appliquent au moteur HTTP direct. Les requests de navigateur gèrent les redirections via la navigation native du navigateur, qui les suit par défaut sans limite.
Prochaines étapes
Nous travaillons sur l'exposition de contrôles supplémentaires au niveau des requests via l'API: résolution DNS personnalisée, ajustement des timeouts par phase et options de gestion des certificats. L'objectif est un contrôle total du profil de navigateur via une interface REST propre, sans la charge d'infrastructure.
Si vous avez besoin d'une option spécifique, nous sommes à votre écoute. Le dashboard affiche déjà les performances de vos requests avec ces nouvelles options, vous permettant de mesurer la différence par vous-même.