Sommaire
Agents IA et navigateurs automatisés : leur donner une connexion française
Un agent qui navigue depuis un serveur cloud se fait souvent refuser. Ce qu'une IP mobile règle, comment la brancher dans Playwright, et les limites.
update Mis à jour le
Un agent IA qui remplit un formulaire, un script Playwright qui teste votre parcours d'achat, un robot qui relève vos commandes sur le portail d'un fournisseur : tous tournent le plus souvent sur un serveur cloud. Et les adresses de serveur cloud sont les premières que les sites filtrent.
Le problème
Une adresse d'hébergeur dit au site : « ceci n'est pas un internaute ». Beaucoup de sites répondent par un captcha, une page de vérification, ou un refus pur et simple. Certains services de protection proposent même aux sites de bloquer par défaut les robots d'IA.
Une ligne mobile française donne à l'agent l'adresse d'un abonné d'opérateur. Le filtre le plus grossier, celui qui juge sur l'adresse seule, ne le refuse plus.
Ce que la page ne dit pas de faire
Un site qui refuse les robots par ses conditions, son robots.txt ou sa protection anti-robot
a donné sa réponse. Une adresse mobile ne la change pas.
Cette page s'adresse aux usages où l'agent agit pour vous, là où vous avez le droit d'agir : vos comptes, vos outils, vos propres sites, les portails de vos partenaires, ou des tests de qualité sur votre service. Pour la collecte de données publiques, le cadre est dans Veille de prix et collecte.
Brancher le proxy
Les adresses et identifiants sont sur la fiche du proxy, dans Mes proxies.
Playwright (Python)
browser = playwright.chromium.launch(proxy={
"server": "http://HOTE:PORT",
"username": "IDENTIFIANT",
"password": "MOT_DE_PASSE",
})
context = browser.new_context(locale="fr-FR", timezone_id="Europe/Paris")
locale et timezone_id font afficher les pages, les dates et les prix comme pour un visiteur
français.
Puppeteer (Node.js)
const browser = await puppeteer.launch({ args: ["--proxy-server=http://HOTE:PORT"] });
const page = await browser.newPage();
await page.authenticate({ username: "IDENTIFIANT", password: "MOT_DE_PASSE" });
Requêtes HTTP simples (Python, requests)
proxies = {"https": "socks5h://IDENTIFIANT:MOT_DE_PASSE@HOTE:PORT"}
requests.get("https://exemple.fr", proxies=proxies, timeout=30)
Le h de socks5h fait résoudre les noms par le proxy : sans lui, vos requêtes DNS partent par
le serveur. Il faut le paquet requests[socks].
Les pièges
L'adresse n'est qu'un signal parmi d'autres. Un navigateur sans interface (headless) se reconnaît à d'autres indices que son IP. Si votre agent se fait refuser avec une bonne adresse, le problème est ailleurs.
WebRTC. Un navigateur automatisé peut révéler l'adresse du serveur par WebRTC, en dehors du proxy. Voir Fuites WebRTC et DNS, ou faites passer tout le serveur par le tunnel WireGuard.
Un agent, un proxy. Plusieurs agents qui agissent sur des comptes différents par la même adresse se retrouvent reliés. Donnez une ligne à chaque contexte qui doit rester séparé ; voir Cloisonner ses usages.
Changer d'IP au bon moment. Jamais au milieu d'une session connectée : le site verrait le même compte sauter d'une adresse à l'autre. La rotation se pilote par l'API, entre deux tâches ; voir Changer d'IP.
Quelle formule
Un navigateur charge des pages entières, images et scripts compris : la data part vite. Une formule à data illimitée évite de surveiller un quota. Prenez la rotation si vos tâches gagnent à repartir d'une adresse neuve, une adresse fixe sinon.
FAQ
HTTP ou SOCKS5 pour un navigateur automatisé ?
Les deux marchent. Chromium n'accepte pas d'identifiant dans l'adresse d'un proxy SOCKS5, d'où l'usage de HTTP dans les exemples ci-dessus. Voir HTTP ou SOCKS5 ?.
Mon agent tourne chez moi, pas sur un serveur. En ai-je besoin ?
Probablement pas : il sort déjà par votre box, une adresse d'abonné. Le proxy n'a d'intérêt que pour séparer ses activités des vôtres, ou pour lui donner une origine française si vous êtes à l'étranger.
Voir aussi : Erreurs fréquentes · Tester son proxy
Besoin d'un proxy mobile français ? Une vraie ligne 4G/5G française, un port HTTP et un port SOCKS5, rotation d'IP à la demande.
Voir les offresarrow_forward