Nouveautés
Vous connaissez la routine. Ouvrir les DevTools, recharger, faire défiler des dizaines de requêtes jusqu'à trouver celle qui contient les prix recherchés, clic droit, Copy as cURL. Ensuite, le vrai travail commence : supprimer les headers propres à Chrome, réécrire l'appel pour votre propre client, et vérifier s'il répond toujours en dehors de votre navigateur.
L'extension Chrome FourA, actuellement en version bêta, réduit tout cela à quelques clics. Elle ajoute un onglet FourA à côté de Network pour lister les requêtes de la page, repérer celle qui transporte un texte visible à l'écran, et la copier sous forme d'appel prêt à l'emploi vers Single, Proxy Finder ou Browser, en curl, Python, Node ou MCP. Cette même extension propose un popup pour faire passer Chrome directement par l'un de vos utilisateurs proxy port.
Elle n'est pas encore disponible sur le Chrome Web Store. Vous pouvez la télécharger sous Tools dans le Dashboard et la charger en mode développeur (Chrome version 116 ou ultérieure). L'extension est gratuite ; le trafic transitant par le tunnel est décompté du quota de proxy de votre forfait, et les appels exécutés depuis les DevTools sont facturés au tarif habituel de l'API.
Fonctionnement
Ouvrez les DevTools sur la page ciblée et sélectionnez l'onglet FourA. Rechargez la page, et l'onglet affiche la liste des requêtes comme le ferait Network, avec les publicités et outils d'analyse masqués par défaut, ainsi qu'un filtre This site only dédié aux requêtes directes du site. Saisissez un prix, un nom de produit ou tout autre texte visible dans Find in responses, et l'outil isole les requêtes dont la réponse le contient. C'est souvent à cette étape que l'on découvre que la page est générée à partir d'un endpoint JSON appelable directement.
Sélectionnez la requête, choisissez un moteur sous FourA call, puis copiez. Voici la commande curl générée pour une requête JSON sur une page e-commerce (version tronquée : la copie réelle intègre l'ensemble des headers envoyés par la page) :
curl https://api.foura.ai/api/single \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"url": "https://shop.example.com/api/products?category=coffee&page=2",
"headers": [
["accept", "application/json"],
["referer", "https://shop.example.com/coffee"],
["accept-language", "en-GB,en;q=0.9"]
],
"browser": "Chrome",
"os": "macOS",
"unblocker": true
}'
Trois éléments dans cet appel sont délibérés. Les headers sont transmis sous forme de liste de paires, dans l'ordre d'envoi par la page, ce qui correspond au format attendu par Single. Ceux que Chrome génère pour sa propre connexion (host, content-length, accept-encoding, connection et quelques autres) sont supprimés, car les copier bloque le client qui exécute ensuite l'appel. De plus, browser et os demandent le browser profile correspondant au Chrome que vous utilisez. La version est volontairement omise : l'appel reçoit la plus récente disponible chez nous au lieu d'être rejeté pour une version non prise en charge.
Le format MCP correspond au nom de l'outil (foura_single) suivi du même JSON, prêt pour un agent connecté à notre MCP server.
Viennent ensuite deux boutons. Open in the playground charge l'appel dans le Playground du Dashboard, avec la même clé sélectionnée s'il s'agit de l'une des vôtres. Run through FourA l'envoie et affiche « The browser got » et « FourA got » côte à côte, pour vérifier si notre réponse correspond à celle de la page avant d'écrire la moindre ligne de code.
Impact
La méthode manuelle est bien documentée. Le tutoriel de ScrapingBee nécessite cinq étapes uniquement pour extraire la commande cURL depuis Chrome, et précise que la copie inclut chaque header et cookie envoyé par le navigateur. C'est le point de départ de la plupart des scrapers. Mais ce n'est que la moitié du travail, car cette copie prouve seulement que la request fonctionne depuis votre navigateur et nulle part ailleurs.
L'onglet FourA traite les deux aspects au même endroit. Vous identifiez la request d'après son contenu retourné plutôt qu'en devinant les URL, vous obtenez un appel au format attendu par l'API, et un simple clic confirme s'il fonctionne de notre côté. Le gain est maximal sur les pages où les données transitent via une request dont l'URL n'indique rien d'explicite.
Nous n'avons pas encore de métriques sur le temps gagné. Il s'agit d'une version bêta, et la véritable mesure sera votre prochaine tâche.
Pour les utilisateurs avancés
Basculez le moteur sur Proxy Finder, et le panneau encapsule la même request tout en proposant un Exit country :
{
"request": {
"method": "GET",
"url": "https://shop.example.com/api/products?category=coffee&page=2",
"headers": [["accept", "application/json"]],
"unblocker": true
},
"exitCountries": ["DE"]
}
exitCountries est une allowlist stricte. La requête ne bascule jamais vers un autre pays, et le pays ayant servi la réponse est renvoyé sous exitCountry. C'est une fonctionnalité liée au forfait, donc un forfait sans ciblage géographique répond par un refus explicite.
Browser adopte une structure différente, car il ouvre des pages plutôt que d'envoyer des requêtes. Il prend les headers sous forme d'objet, transforme le header Cookie de la page en une liste de cookies limitée à l'hôte, et omet user-agent ainsi que les headers de client-hints, puisque le moteur envoie les siens (avec l'option de profil activée, il envoie le User-Agent de cette fenêtre à la place). Il rejoue uniquement un GET sans corps. Un POST issu d'un formulaire de recherche a sa place sur Single, où un corps JSON transite sous forme d'objet et tout le reste sous la forme de la chaîne exacte envoyée par la page.
Faites un clic droit sur n'importe quelle requête pour obtenir les mêmes copies, en plus de Copy URL et Copy response. La clé API pour les exécutions se trouve dans les Settings de l'onglet et reste active jusqu'à la fermeture de Chrome, sauf si vous cochez Keep the key on this computer.
Un avertissement important. Un appel copié avec des cookies rejoue la session dans laquelle vous êtes connecté. Traitez-le comme un mot de passe et tenez-le à l'écart des tickets, des chats et des dépôts publics.
Le volet popup mérite aussi un mot. Il mesure l'adresse qu'un site voit à travers le tunnel plutôt que de la lire depuis vos paramètres, et lorsque cette adresse correspond à la vôtre, il indique Not routed. Quand l'icône devient rouge avec un chiffre, le proxy a refusé ce nombre de connexions au cours de la dernière minute, et le popup en indique la raison. Les username options derrière sa page Location sont identiques à celles documentées pour le port proxy.
What's Next
L'extension reste en version bêta, installée depuis le Dashboard, jusqu'à ce que nous la jugions terminée, et nous ne fixons aucune date pour une publication sur le Chrome Web Store. Chrome est le seul navigateur pour lequel elle est conçue et testée. Le setup guide décrit ce qui est disponible aujourd'hui; les prochaines évolutions dépendront de ce que vous rencontrerez lorsque vous utiliserez l'onglet FourA sur une tâche réelle.
La prochaine fois qu'une page résiste à votre parser, ouvrez les DevTools avant d'ouvrir le HTML. Le scraper le plus économique est souvent celui qui appelle la requête que la page a déjà effectuée.