{"id":47423,"date":"2026-08-27T09:21:09","date_gmt":"2026-08-27T09:21:09","guid":{"rendered":"https:\/\/floppydata.com\/non-categorise\/comment-utiliser-un-proxy-dans-puppeteer\/"},"modified":"2026-08-27T09:21:09","modified_gmt":"2026-08-27T09:21:09","slug":"how-to-use-a-proxy-in-puppeteer","status":"publish","type":"post","link":"https:\/\/floppydata.com\/fr\/blog\/how-to-use-a-proxy-in-puppeteer\/","title":{"rendered":"Comment utiliser un proxy dans Puppeteer"},"content":{"rendered":"<p>Puppeteer est l&rsquo;une des biblioth\u00e8ques Node.js les plus populaires et un outil puissant pour l&rsquo;automatisation de t\u00e2ches telles que le web scraping, les tests, la recherche SEO ou le suivi des prix via les navigateurs Chrome ou Chromium. Si vous avez d\u00e9j\u00e0 travaill\u00e9 avec un flux de travail automatis\u00e9 \u00e0 grande \u00e9chelle, vous connaissez d\u00e9j\u00e0 ce probl\u00e8me : les sites web limitent le d\u00e9bit et restreignent votre connexion, bloquent les requ\u00eates sur-le-champ, voire mettent votre adresse IP sur liste noire.<\/p>\n<p>Non seulement ces complications finissent par vous co\u00fbter un temps et un argent pr\u00e9cieux, mais elles peuvent \u00e9galement avoir un impact consid\u00e9rable sur le score de fiabilit\u00e9 de votre adresse personnelle et, par cons\u00e9quent, sur toutes vos futures activit\u00e9s en ligne. Heureusement, il existe une m\u00e9thode qui permet de r\u00e9soudre ces probl\u00e8mes sans effort, tout en vous aidant \u00e0 contourner les restrictions g\u00e9ographiques et \u00e0 r\u00e9partir les requ\u00eates automatis\u00e9es afin d\u2019am\u00e9liorer le taux de r\u00e9ussite et la vitesse de connexion. Je parle bien s\u00fbr des proxys.<\/p>\n<p>Dans cet article, nous allons d\u00e9terminer pr\u00e9cis\u00e9ment pourquoi vous avez besoin de proxys et quel type de proxy correspond \u00e0 votre projet, puis nous aborderons les principes de base de la configuration, de l\u2019authentification et de l\u2019importance des protocoles. De plus, je vous recommanderai un excellent fournisseur qui s\u2019est r\u00e9v\u00e9l\u00e9 particuli\u00e8rement efficace pour mes propres pipelines d\u2019automatisation.<\/p>\n<h2>Qu\u2019est-ce qu\u2019un mandataire de marionnettiste et pourquoi en avez-vous besoin&nbsp;?<\/h2>\n<p> Un proxy Puppeteer sert d&rsquo;interm\u00e9diaire entre votre script automatis\u00e9 et le site web cibl\u00e9. En acheminant vos requ\u00eates via le serveur d\u00e9di\u00e9 du fournisseur, le proxy masque votre v\u00e9ritable adresse IP, de sorte que le site cible voie l&rsquo;adresse IP du proxy et non la v\u00f4tre.<\/p>\n<p>Cela dit, le masquage d&rsquo;adresse IP n&rsquo;est que la partie \u00e9merg\u00e9e de l&rsquo;iceberg. Voici la liste compl\u00e8te des avantages qu&rsquo;un proxy apporte \u00e0 votre flux de travail Puppeteer :<\/p>\n<ul>\n<li><strong>\u00c9viter les blocages d\u2019adresses IP, la limitation de d\u00e9bit et la r\u00e9duction de vitesse<\/strong>: les sites web restreignent souvent l\u2019acc\u00e8s aux adresses IP qui effectuent un grand nombre de requ\u00eates cons\u00e9cutives. Si elle n\u2019est pas carr\u00e9ment bloqu\u00e9e, votre connexion peut \u00eatre consid\u00e9rablement ralentie ou submerg\u00e9e de CAPTCHA. Un pool de <a href=\"https:\/\/floppydata.com\/proxy-type\/rotating-proxy\/\">proxys rotatifs<\/a> bien configur\u00e9 r\u00e9sout ce probl\u00e8me : m\u00eame si l\u2019une de vos adresses IP est bloqu\u00e9e, une autre prend le relais pour garantir un flux de travail ininterrompu.<\/li>\n<li><strong>Contourner les restrictions g\u00e9ographiques<\/strong>: une grande partie du contenu Internet est masqu\u00e9e par des restrictions g\u00e9ographiques ou modifi\u00e9e en fonction de la localisation d&rsquo;o\u00f9 provient la requ\u00eate. <a href=\"https:\/\/floppydata.com\/proxy-type\/residential-proxy\/\">Les proxys r\u00e9sidentiels<\/a> vous permettent d\u2019obtenir une adresse n\u2019importe o\u00f9 dans le monde avec une pr\u00e9cision extr\u00eame (\u00c9tats, villes ou codes postaux sp\u00e9cifiques) et de naviguer comme si vous vous trouviez physiquement dans cette r\u00e9gion.<\/li>\n<li><strong>Am\u00e9lioration des taux de r\u00e9ussite des requ\u00eates<\/strong>: la r\u00e9partition des requ\u00eates sur un pool de proxys r\u00e9duit consid\u00e9rablement les \u00e9checs de connexion et les d\u00e9lais d&rsquo;expiration, en particulier lors de t\u00e2ches de scraping intensives.<\/li>\n<\/ul>\n<p>Cela s&rsquo;av\u00e8re extr\u00eamement utile, voire indispensable, dans les cas suivants :<\/p>\n<ul>\n<li><strong>le web scraping \u00e0 grande \u00e9chelle<\/strong><\/li>\n<li><strong>La v\u00e9rification des publicit\u00e9s<\/strong><\/li>\n<li><strong>Le suivi du r\u00e9f\u00e9rencement naturel<\/strong><\/li>\n<li><strong>L&rsquo;assurance qualit\u00e9 et les tests<\/strong><\/li>\n<li><strong>La localisation<\/strong><\/li>\n<\/ul>\n<p>En bref, si vous utilisez Puppeteer pour autre chose qu&rsquo;un simple test ponctuel, les proxys sont indispensables&nbsp;: un r\u00e9seau de proxys de haute qualit\u00e9 fait souvent la diff\u00e9rence entre un script fragile et un pipeline de donn\u00e9es fiable.<\/p>\n<h2>Puppeteer : VPN ou proxy&nbsp;? Lequel choisir&nbsp;?<\/h2>\n<p> Lorsqu&rsquo;on aborde le sujet des outils de contournement, une question revient immanquablement&nbsp;: faut-il privil\u00e9gier un proxy ou un VPN&nbsp;? Chacun pr\u00e9sente ses avantages et ses inconv\u00e9nients, et tous deux peuvent donner d&rsquo;excellents r\u00e9sultats s&rsquo;ils sont utilis\u00e9s correctement et dans le cadre d&rsquo;un cas d&rsquo;usage appropri\u00e9. Cet article \u00e9tant consacr\u00e9 \u00e0 l&rsquo;automatisation avec Puppeteer, examinons quel outil est le plus adapt\u00e9 aux flux de travail de Puppeteer.<\/p>\n<p>Du point de vue de l\u2019utilisateur, les VPN et les proxys sont assez similaires : tous deux masquent votre adresse IP en vous en attribuant une nouvelle. Cependant, les similitudes s\u2019arr\u00eatent l\u00e0. Un VPN achemine tout le trafic de votre appareil via un tunnel crypt\u00e9 pour vous connecter au serveur du fournisseur. \u00c0 partir de l\u00e0, vous pouvez naviguer librement sur l\u2019ensemble du Web.<\/p>\n<p>Les serveurs proxy, quant \u00e0 eux, masquent votre adresse IP uniquement aupr\u00e8s d&rsquo;un seul site web ou d&rsquo;une seule application (celui ou celle auquel vous vous connectez) \u00e0 la fois, tandis que le chiffrement est d\u00e9termin\u00e9 par le protocole choisi : HTTP n&rsquo;offre aucun chiffrement, HTTPS est utilis\u00e9 pour un chiffrement de base et SOCKS5 pour un chiffrement maximal.<\/p>\n<h3>Pourquoi est-ce important ?<\/h3>\n<p>Ces deux diff\u00e9rences majeures sont ce qui distingue le plus les outils de contournement lorsqu\u2019il s\u2019agit de les utiliser. Le chiffrement des VPN en fait un outil id\u00e9al pour la confidentialit\u00e9 et l\u2019anonymat en ligne des particuliers, tandis que la faible charge des proxys leur permet de maintenir des d\u00e9bits \u00e9lev\u00e9s et de g\u00e9rer simultan\u00e9ment des volumes consid\u00e9rables de trafic utilisateur. De plus, en acheminant l\u2019int\u00e9gralit\u00e9 de votre trafic, le VPN ne peut vous fournir qu\u2019une seule adresse IP \u00e0 la fois, tandis que les proxys offrent autant de connexions simultan\u00e9es que vous le souhaitez.<\/p>\n<p>Voici un tableau comparatif pour une meilleure visualisation :<\/p>\n<table class=\"fldt-blog-table\">\n<tbody>\n<tr>\n<td><\/td>\n<td><strong>VPN<\/strong><\/td>\n<td><strong>Proxy<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Masquage d&rsquo;adresse IP<\/strong><\/td>\n<td>Oui<\/td>\n<td>Oui<\/td>\n<\/tr>\n<tr>\n<td><strong>Chiffrement<\/strong><\/td>\n<td>Oui, l&rsquo;ensemble du trafic de l&rsquo;appareil<\/td>\n<td>Uniquement avec le protocole SOCKS5, par site web\/par application<\/td>\n<\/tr>\n<tr>\n<td><strong>Vitesse<\/strong><\/td>\n<td>Moyenne<\/td>\n<td>\u00c9lev\u00e9e<\/td>\n<\/tr>\n<tr>\n<td><strong>Connexions simultan\u00e9es<\/strong><\/td>\n<td>Une seule adresse IP \u00e0 la fois<\/td>\n<td>Plusieurs adresses IP simultan\u00e9es<\/td>\n<\/tr>\n<tr>\n<td><strong>Contr\u00f4le de la rotation<\/strong><\/td>\n<td>Limit\u00e9<\/td>\n<td>Int\u00e9gr\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>Pr\u00e9cision du ciblage g\u00e9ographique<\/strong><\/td>\n<td>Limit\u00e9e (au niveau du pays)<\/td>\n<td>Ville, r\u00e9gion, code postal, niveau ASN (selon le fournisseur)<\/td>\n<\/tr>\n<tr>\n<td><strong>Gestion des CAPTCHA et des blocages<\/strong><\/td>\n<td>Intervention manuelle requise<\/td>\n<td>G\u00e9r\u00e9 par la rotation automatique<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9volutivit\u00e9<\/strong><\/td>\n<td>Limit\u00e9e<\/td>\n<td>Tr\u00e8s \u00e9volutive<\/td>\n<\/tr>\n<tr>\n<td><strong>Id\u00e9al pour<\/strong><\/td>\n<td>Un usage personnel<\/td>\n<td>L&rsquo;automatisation \u00e0 grande \u00e9chelle<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bien que les VPN puissent en th\u00e9orie \u00eatre int\u00e9gr\u00e9s \u00e0 votre script Puppeteer, le r\u00e9sultat d&rsquo;une telle d\u00e9marche est loin d&rsquo;\u00eatre id\u00e9al. En d&rsquo;autres termes, les VPN sont davantage adapt\u00e9s \u00e0 la navigation individuelle, tandis que les proxys sont sp\u00e9cialement con\u00e7us pour l&rsquo;automatisation, le scraping, les tests et la collecte de donn\u00e9es \u00e0 grande \u00e9chelle.<\/p>\n<h2>Comment utiliser un proxy dans Puppeteer&nbsp;: configuration de base avec des donn\u00e9es de disquette<\/h2>\n<p> Passons maintenant \u00e0 la configuration du proxy et \u00e0 l&rsquo;int\u00e9gration de Puppeteer. Pour la configuration et la d\u00e9monstration du proxy, j&rsquo;utiliserai Floppydata.<\/p>\n<p>Floppydata est depuis un certain temps d\u00e9j\u00e0 mon fournisseur de proxys de pr\u00e9dilection. Le service garantit une disponibilit\u00e9 constante de 99,99 % et des scores de fiabilit\u00e9 \u00e9lev\u00e9s, offrant ainsi une connexion ininterrompue pour tout pipeline automatis\u00e9. En plus de ses performances exceptionnelles, Floppydata propose l\u2019un des meilleurs tarifs du march\u00e9 : seulement 1 $\/Go pour les adresses IP tournantes et 5 $\/IP pour les proxys FAI. Ce service convient donc parfaitement aux utilisateurs qui m\u00e8nent des op\u00e9rations \u00e0 grande \u00e9chelle ou traitant d\u2019importants volumes de donn\u00e9es, tout en veillant \u00e0 respecter leur budget.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-47251\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1.png\" alt=\"Page d'accueil du service d'acc\u00e8s aux donn\u00e9es Web\" width=\"1999\" height=\"1132\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1.png 1999w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1-300x170.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1-1024x580.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1-768x435.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image2-1-1536x870.png 1536w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p>La premi\u00e8re \u00e9tape pour int\u00e9grer des proxys \u00e0 votre script Puppeteer consiste \u00e0 vous procurer un proxy. Avec Floppydata, cela ne prend que quelques clics.<\/p>\n<p>Une fois connect\u00e9, vous acc\u00e9derez au tableau de bord de Floppydata. Commencez par choisir une formule adapt\u00e9e, puis passez au paiement. Pour les flux de travail automatis\u00e9s, je vous recommande la formule \u00ab Rotating proxy \u00bb, qui comprend trois types d&rsquo;adresses IP (r\u00e9sidentielles, mobiles et de centre de donn\u00e9es) entre lesquelles vous pouvez basculer \u00e0 votre guise.<\/p>\n<p>Les \u00e9tapes suivantes sont on ne peut plus simples : m\u00eame si vous ne connaissez pas bien les services de proxy, l&rsquo;interface \u00e9pur\u00e9e de Floppydata vous garantit de ne pas vous perdre.<\/p>\n<p>Acc\u00e9dez \u00e0 l\u2019onglet \u00ab Obtenir les identifiants du proxy \u00bb dans la barre lat\u00e9rale de gauche. Vous y trouverez un nom d\u2019utilisateur et un mot de passe associ\u00e9s \u00e0 votre compte, mais pour les besoins de cette d\u00e9monstration, cr\u00e9ons un profil d\u00e9di\u00e9 \u00e0 Puppeteer : cela permettra de g\u00e9n\u00e9rer un nouveau proxy avec une authentification d\u00e9j\u00e0 int\u00e9gr\u00e9e. Comme vous pouvez le constater, vous pouvez cr\u00e9er autant de sous-utilisateurs distincts que vous le souhaitez, ce qui simplifie consid\u00e9rablement les processus de gestion ult\u00e9rieurs.<\/p>\n<p>Il vous suffit ensuite de s\u00e9lectionner les param\u00e8tres requis dans les listes d\u00e9roulantes propos\u00e9es. Au fur et \u00e0 mesure que vous renseignez les informations, celles-ci sont int\u00e9gr\u00e9es en temps r\u00e9el dans la cha\u00eene de proxy. Une fois que vous \u00eates satisfait des param\u00e8tres, il vous suffit de copier un extrait de code ou la cha\u00eene de proxy.<\/p>\n<p><video style=\"max-width: 100%; height: auto; display: block; margin: 0 auto;\" preload=\"metadata\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"300\" height=\"150\"><source src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/Floppydata-Puppeteer.mp4\" type=\"video\/mp4\"\/>Votre navigateur ne prend pas en charge la balise vid\u00e9o.<\/video><\/p>\n<p> Pour cette d\u00e9monstration, concentrons-nous sur le fonctionnement de la configuration de base avec une cha\u00eene de proxy. Voici un extrait de code illustrant une int\u00e9gration de proxy :<\/p>\n<h3>Proxy Puppeteer avec authentification \u2013 m\u00e9thode page.authenticate<\/h3>\n<p><strong>Installation :<\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">bash<\/span><\/div>\n<pre style=\"margin: 0; padding: 16px 22px; overflow-x: auto;\"><code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; font-size: 14px; line-height: 1.6; color: #50fa7b;\">npm install puppeteer<\/code><\/pre>\n<\/div>\n<p><strong>Configuration de base :  <\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">javascript<\/span><\/div>\n<pre style=\"margin: 0; padding: 18px 24px; overflow-x: auto; font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.65; color: #f8f8f2;\"><code><span style=\"color: #ff79c6;\">const<\/span> puppeteer = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'puppeteer'<\/span>);\n\n(<span style=\"color: #ff79c6;\">async<\/span> () =&gt; {\n    <span style=\"color: #ff79c6;\">const<\/span> PROXY_USER = <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup01'<\/span>;\n    <span style=\"color: #ff79c6;\">const<\/span> PROXY_PASS = <span style=\"color: #f1fa8c;\">'your_password'<\/span>;\n    <span style=\"color: #ff79c6;\">const<\/span> PROXY_SERVER = <span style=\"color: #f1fa8c;\">'geo.g-w.info:10080'<\/span>;\n\n    <span style=\"color: #ff79c6;\">const<\/span> browser = <span style=\"color: #ff79c6;\">await<\/span> puppeteer.<span style=\"color: #50fa7b;\">launch<\/span>({\n        args: [<span style=\"color: #f1fa8c;\">`--proxy-server=${<\/span>PROXY_SERVER<span style=\"color: #f1fa8c;\">}`<\/span>]\n    });\n\n    <span style=\"color: #ff79c6;\">const<\/span> page = <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">newPage<\/span>();\n\n    <span style=\"color: #6272a4;\">\/\/ Authenticate<\/span>\n    <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">authenticate<\/span>({\n        username: PROXY_USER,\n        password: PROXY_PASS\n    });\n\n    <span style=\"color: #6272a4;\">\/\/ Navigate<\/span>\n    <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">goto<\/span>(<span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>);\n\n    <span style=\"color: #ff79c6;\">const<\/span> content = <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">content<\/span>();\n    console.<span style=\"color: #50fa7b;\">log<\/span>(content);\n\n    <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">close<\/span>();\n})();<\/code><\/pre>\n<\/div>\n<p>Une fois le code configur\u00e9, il vous suffit de copier-coller vos identifiants de proxy depuis le tableau de bord de Floppydata aux emplacements correspondants : votre nom d\u2019utilisateur (la cha\u00eene compl\u00e8te que nous avons copi\u00e9e dans le GIF ci-dessus) dans le champ \u00ab <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_USER<\/code> \u00bb, et votre mot de passe dans le champ \u00ab <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_PASS<\/code> \u00bb. <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_SERVER<\/code> suit une structure simple  <code style=\"font-family: 'Fira Code',Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">hostname:port<\/code>  au format suivant, o\u00f9 \u00ab hostname \u00bb correspond \u00e0 <a href=\"http:\/\/geo.g-w.info\" target=\"_blank\" rel=\"noopener\">geo.g-w.info<\/a> et o\u00f9 les plages de ports sont d\u00e9finies par le protocole choisi : 10080 pour HTTP, 10443 pour HTTPS et 10800 pour SOCKS5.<\/p>\n<p>Cette m\u00e9thode inclut \u00e9galement une authentification native, prenant en charge \u00e0 la fois les protocoles HTTP et HTTPS : saisissez votre nom d&rsquo;utilisateur et votre mot de passe \u00e0 l&rsquo;adresse <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">page.authenticate<\/code> pour int\u00e9grer imm\u00e9diatement votre proxy avec l&rsquo;authentification, sans configuration suppl\u00e9mentaire ni cr\u00e9ation de nouvelles pages.<\/p>\n<h3>Authentification via une cha\u00eene de proxys<\/h3>\n<p>Une autre m\u00e9thode d\u2019authentification par proxy, principalement utilis\u00e9e pour les messages d\u2019erreur personnalis\u00e9s, les r\u00e9ponses personnalis\u00e9es et la mesure des statistiques de trafic, ou si vous avez besoin d\u2019int\u00e9grer directement des identifiants dans l\u2019URL du proxy, est le package npm <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">proxy-chain<\/code>. L\u2019\u00e9l\u00e9ment essentiel de cette m\u00e9thode est <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">anonymizeProxy(proxy)<\/code>, qui lance un serveur proxy local.<\/p>\n<p><strong>Installation :<\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">bash<\/span><\/div>\n<pre style=\"margin: 0; padding: 16px 22px; overflow-x: auto;\"><code style=\"font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.6; color: #50fa7b;\">npm install proxy-chain<\/code><\/pre>\n<\/div>\n<p><strong>Configuration :  <\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">javascript<\/span><\/div>\n<pre style=\"margin: 0; padding: 18px 24px; overflow-x: auto; font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.65; color: #f8f8f2;\"><code><span style=\"color: #ff79c6;\">const<\/span> puppeteer = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'puppeteer'<\/span>);\n<span style=\"color: #ff79c6;\">const<\/span> proxyChain = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'proxy-chain'<\/span>);\n\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_SERVER = <span style=\"color: #f1fa8c;\">'geo.g-w.info:10080'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_USER = <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup01'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_PASS = <span style=\"color: #f1fa8c;\">'your_password'<\/span>;\n\n(<span style=\"color: #ff79c6;\">async<\/span> () =&gt; {\n    <span style=\"color: #ff79c6;\">const<\/span> proxy = <span style=\"color: #f1fa8c;\">`http:\/\/${<\/span>PROXY_USER<span style=\"color: #f1fa8c;\">}:${<\/span>PROXY_PASS<span style=\"color: #f1fa8c;\">}@${<\/span>PROXY_SERVER<span style=\"color: #f1fa8c;\">}`<\/span>;\n\n    <span style=\"color: #ff79c6;\">const<\/span> anonymizedProxy = <span style=\"color: #ff79c6;\">await<\/span> proxyChain.<span style=\"color: #50fa7b;\">anonymizeProxy<\/span>(proxy);\n\n    <span style=\"color: #ff79c6;\">const<\/span> browser = <span style=\"color: #ff79c6;\">await<\/span> puppeteer.<span style=\"color: #50fa7b;\">launch<\/span>({\n        args: [<span style=\"color: #f1fa8c;\">`--proxy-server=${<\/span>anonymizedProxy<span style=\"color: #f1fa8c;\">}`<\/span>],\n    });\n\n    <span style=\"color: #ff79c6;\">const<\/span> page = <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">newPage<\/span>();\n    <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">goto<\/span>(<span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>);\n    <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">screenshot<\/span>({ path: <span style=\"color: #f1fa8c;\">'example2.png'<\/span> });\n\n    <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">close<\/span>();\n    <span style=\"color: #ff79c6;\">await<\/span> proxyChain.<span style=\"color: #50fa7b;\">closeAnonymizedProxy<\/span>(anonymizedProxy, <span style=\"color: #bd93f9;\">true<\/span>);\n})();<\/code><\/pre>\n<\/div>\n<p>Pour cette m\u00e9thode, vous aurez besoin des m\u00eames identifiants que pr\u00e9c\u00e9demment, ainsi que de l&rsquo;URL de votre proxy au format suivant : <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">Protocol:\/\/Username:Password@Hostname:Port<\/code>. Vous trouverez une cha\u00eene pr\u00eate \u00e0 l&#8217;emploi sur le tableau de bord de Floppydata, juste en dessous de la configuration du proxy : cliquez sur \u00ab Cha\u00eenes proxy \u00bb, puis sur \u00ab Sous forme de liste \u00bb, et choisissez le format parmi ceux propos\u00e9s dans la liste d\u00e9roulante.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-47263\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1.png\" alt=\"Interface de configuration des param\u00e8tres de proxy\" width=\"1816\" height=\"788\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1.png 1816w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1-300x130.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1-1024x444.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1-768x333.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/08\/image1-1536x667.png 1536w\" sizes=\"(max-width: 1816px) 100vw, 1816px\" \/><\/p>\n<h2>Utilisation d&rsquo;un proxy avec Puppeteer \u00e0 grande \u00e9chelle : bonnes pratiques d&rsquo;int\u00e9gration d&rsquo;un proxy avec Puppeteer<\/h2>\n<p>Une fois que votre configuration de base du proxy fonctionne, vous pouvez passer \u00e0 l&rsquo;extension de votre pipeline pour la production. Dans ce cas, un seul proxy statique ne suffira pas ; voyons comment mettre en place un pool de proxys \u00e0 rotation dans Puppeteer.<\/p>\n<h3>Rotation al\u00e9atoire<\/h3>\n<p><strong>Installation :<\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">bash<\/span><\/div>\n<pre style=\"margin: 0; padding: 16px 22px; overflow-x: auto;\"><code style=\"font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.6; color: #50fa7b;\">npm install puppeteer<\/code><\/pre>\n<\/div>\n<p><strong>Configuration :  <\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">javascript<\/span><\/div>\n<pre style=\"margin: 0; padding: 18px 24px; overflow-x: auto; font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.65; color: #f8f8f2;\"><code><span style=\"color: #ff79c6;\">const<\/span> puppeteer = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'puppeteer'<\/span>);\n\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_PASS = <span style=\"color: #f1fa8c;\">'your_password'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_SERVER = <span style=\"color: #f1fa8c;\">'geo.g-w.info:10080'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_POOL = [\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup01'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup02'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup03'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup04'<\/span>,\n];\n<span style=\"color: #ff79c6;\">const<\/span> getRandomProxy = () =&gt; PROXY_POOL[Math.<span style=\"color: #50fa7b;\">floor<\/span>(Math.<span style=\"color: #50fa7b;\">random<\/span>() * PROXY_POOL.length)];\n\n<span style=\"color: #ff79c6;\">const<\/span> urls = [\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n];\n\n(<span style=\"color: #ff79c6;\">async<\/span> () =&gt; {\n    <span style=\"color: #ff79c6;\">for<\/span> (<span style=\"color: #ff79c6;\">const<\/span> url <span style=\"color: #ff79c6;\">of<\/span> urls) {\n        <span style=\"color: #ff79c6;\">const<\/span> PROXY_USER = <span style=\"color: #50fa7b;\">getRandomProxy<\/span>();\n\n        <span style=\"color: #ff79c6;\">const<\/span> browser = <span style=\"color: #ff79c6;\">await<\/span> puppeteer.<span style=\"color: #50fa7b;\">launch<\/span>({\n            args: [<span style=\"color: #f1fa8c;\">`--proxy-server=${<\/span>PROXY_SERVER<span style=\"color: #f1fa8c;\">}`<\/span>]\n        });\n\n        <span style=\"color: #ff79c6;\">const<\/span> page = <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">newPage<\/span>();\n\n        <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">authenticate<\/span>({\n            username: PROXY_USER,\n            password: PROXY_PASS\n        });\n\n        <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">goto<\/span>(url);\n        <span style=\"color: #ff79c6;\">const<\/span> content = <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">content<\/span>();\n        console.<span style=\"color: #50fa7b;\">log<\/span>(<span style=\"color: #f1fa8c;\">`Request via ${<\/span>PROXY_USER<span style=\"color: #f1fa8c;\">}:`<\/span>, content);\n\n        <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">close<\/span>();\n    }\n})();<\/code><\/pre>\n<\/div>\n<p>Comme vous pouvez le constater, la principale diff\u00e9rence r\u00e9side ici dans le fait qu\u2019au lieu d\u2019utiliser ` <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_USER<\/code> `, nous utilisons ` <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_POOL<\/code>`. Parall\u00e8lement, nous ajoutons une logique de rotation al\u00e9atoire gr\u00e2ce \u00e0 ` <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">Math.floor(Math.random() * PROXY_POOL.length)<\/code>`.<\/p>\n<h3>Rotation s\u00e9quentielle<\/h3>\n<p><strong>Installation :<\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">bash<\/span><\/div>\n<pre style=\"margin: 0; padding: 16px 22px; overflow-x: auto;\"><code style=\"font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.6; color: #50fa7b;\">npm install puppeteer<\/code><\/pre>\n<\/div>\n<p><strong>Configuration :  <\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">javascript<\/span><\/div>\n<pre style=\"margin: 0; padding: 18px 24px; overflow-x: auto; font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.65; color: #f8f8f2;\"><code><span style=\"color: #ff79c6;\">const<\/span> puppeteer = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'puppeteer'<\/span>);\n\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_PASS = <span style=\"color: #f1fa8c;\">'your_password'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_SERVER = <span style=\"color: #f1fa8c;\">'geo.g-w.info:10080'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_POOL = [\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup01'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup02'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup03'<\/span>,\n    <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup04'<\/span>,\n];\n\n<span style=\"color: #ff79c6;\">let<\/span> proxyIndex = <span style=\"color: #bd93f9;\">0<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> getNextProxy = () =&gt; {\n    <span style=\"color: #ff79c6;\">const<\/span> proxy = PROXY_POOL[proxyIndex % PROXY_POOL.length];\n    proxyIndex++;\n    <span style=\"color: #ff79c6;\">return<\/span> proxy;\n};\n\n<span style=\"color: #ff79c6;\">const<\/span> urls = [\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n    <span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>,\n];\n\n(<span style=\"color: #ff79c6;\">async<\/span> () =&gt; {\n    <span style=\"color: #ff79c6;\">for<\/span> (<span style=\"color: #ff79c6;\">const<\/span> url <span style=\"color: #ff79c6;\">of<\/span> urls) {\n        <span style=\"color: #ff79c6;\">const<\/span> PROXY_USER = <span style=\"color: #50fa7b;\">getNextProxy<\/span>();\n\n        <span style=\"color: #ff79c6;\">const<\/span> browser = <span style=\"color: #ff79c6;\">await<\/span> puppeteer.<span style=\"color: #50fa7b;\">launch<\/span>({\n            args: [<span style=\"color: #f1fa8c;\">`--proxy-server=${<\/span>PROXY_SERVER<span style=\"color: #f1fa8c;\">}`<\/span>]\n        });\n\n        <span style=\"color: #ff79c6;\">const<\/span> page = <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">newPage<\/span>();\n\n        <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">authenticate<\/span>({\n            username: PROXY_USER,\n            password: PROXY_PASS\n        });\n\n        <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">goto<\/span>(url);\n        <span style=\"color: #ff79c6;\">const<\/span> content = <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">content<\/span>();\n        console.<span style=\"color: #50fa7b;\">log<\/span>(<span style=\"color: #f1fa8c;\">`Request via ${<\/span>PROXY_USER<span style=\"color: #f1fa8c;\">}:`<\/span>, content);\n\n        <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">close<\/span>();\n    }\n})();<\/code><\/pre>\n<\/div>\n<p>Ici, nous utilisons une fonction \u00ab <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">getNextProxy()<\/code> \u00bb qui utilise un compteur \u00ab <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">proxyIndex<\/code> \u00bb avec un op\u00e9rateur modulo (<code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">%<\/code>) pour parcourir le pool dans l&rsquo;ordre.<\/p>\n<h2>Proxy SOCKS Puppeteer : ce qu&rsquo;il faut savoir<\/h2>\n<p>le protocole SOCKS (Socket Secure), et  <a href=\"https:\/\/floppydata.com\/proxy-type\/socks5-proxy\/\">Proxys SOCKS5<\/a>  Plus pr\u00e9cis\u00e9ment, ils fonctionnent \u00e0 un niveau r\u00e9seau inf\u00e9rieur \u00e0 celui des proxys HTTP\/HTTPS. Ce qui les distingue des autres protocoles, c&rsquo;est leur capacit\u00e9 \u00e0 g\u00e9rer tout type de trafic, de la navigation Web standard aux e-mails, en passant par les transferts de fichiers, les connexions P2P et les flux de donn\u00e9es en temps r\u00e9el. Cela est possible car le protocole SOCKS n\u2019interpr\u00e8te ni ne filtre votre trafic comme le font les proxys HTTP ; il se contente de transmettre les paquets TCP et UDP bruts sans aucune modification. De plus, les proxys SOCKS5 offrent le niveau de chiffrement le plus \u00e9lev\u00e9 que la couche proxy puisse fournir.<\/p>\n<p>Dans le contexte de Puppeteer, les proxys SOCKS5 pr\u00e9sentent plusieurs avantages notables. Leur m\u00e9canisme de transfert de paquets de bas niveau se traduit par moins d\u2019erreurs et une latence r\u00e9duite en cas de charge importante, ce qui facilite grandement l\u2019ex\u00e9cution de pipelines de scraping \u00e0 grande \u00e9chelle. \u00c9tant donn\u00e9 que Puppeteer peut prendre en charge un large \u00e9ventail de t\u00e2ches allant au-del\u00e0 de la navigation Web classique, notamment la gestion des m\u00e9dias, les connexions WebSocket et le trafic non HTTP, les proxys SOCKS5 constituent un choix tout indiqu\u00e9, gr\u00e2ce \u00e0 leur capacit\u00e9 \u00e0 g\u00e9rer plusieurs protocoles sans se limiter au seul trafic Web.<\/p>\n<p>Il y a toutefois un hic. Le moteur de Puppeteer, Chromium, ne prend pas en charge de mani\u00e8re native l\u2019authentification par proxy SOCKS5, exig\u00e9e par la plupart des proxys commerciaux, y compris Floppydata. Si vous essayez d\u2019utiliser la m\u00e9thode classique <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #7c3aed; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">page.authenticate<\/code>, vous obtiendrez tr\u00e8s probablement le message d\u2019erreur \u00ab <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">ERR_NO_SUPPORTED_PROXIES<\/code> \u00bb ou le navigateur reviendra \u00e0 une connexion directe, exposant ainsi votre v\u00e9ritable adresse IP.<\/p>\n<p>Il est toutefois possible d&rsquo;int\u00e9grer des adresses IP SOCKS5 dans votre script Puppeteer et de vous authentifier via la m\u00e9thode ` <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">proxy-chain<\/code> `. L&rsquo;utilisation de ` <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">proxy-chain<\/code> ` fonctionne ici, car cela met en place un tunnel HTTP local qui g\u00e8re l&rsquo;authentification SOCKS5 \u00e0 votre place ; Chromium n&rsquo;a ainsi jamais \u00e0 s&rsquo;en occuper directement. La configuration est dans ce cas l\u00e9g\u00e8rement diff\u00e9rente :<\/p>\n<p><strong>Installation :<\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">bash<\/span><\/div>\n<pre style=\"margin: 0; padding: 16px 22px; overflow-x: auto;\"><code style=\"font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.6; color: #50fa7b;\">npm install proxy-chain<\/code><\/pre>\n<\/div>\n<p><strong>Configuration :  <\/strong><\/p>\n<div style=\"background: #282a36; border-radius: 10px; overflow: hidden; margin: 16px 0 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.18);\">\n<div style=\"background: #1e1f29; padding: 10px 18px; display: flex; align-items: center; gap: 7px;\"><span style=\"color: #6272a4; font-family: 'Fira Code',Consolas,monospace; font-size: 12px; margin-left: 10px;\">JavaScript<\/span><\/div>\n<pre style=\"margin: 0; padding: 18px 24px; overflow-x: auto; font-family: 'Fira Code',Consolas,monospace; font-size: 14px; line-height: 1.65; color: #f8f8f2;\"><code><span style=\"color: #ff79c6;\">const<\/span> puppeteer = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'puppeteer'<\/span>);\n<span style=\"color: #ff79c6;\">const<\/span> proxyChain = <span style=\"color: #8be9fd;\">require<\/span>(<span style=\"color: #f1fa8c;\">'proxy-chain'<\/span>);\n\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_USER = <span style=\"color: #f1fa8c;\">'user123-type-residential-country-US-session-pup01'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_PASS = <span style=\"color: #f1fa8c;\">'your_password'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_HOST = <span style=\"color: #f1fa8c;\">'geo.g-w.info'<\/span>;\n<span style=\"color: #ff79c6;\">const<\/span> PROXY_PORT = <span style=\"color: #f1fa8c;\">'10800'<\/span>;\n\n(<span style=\"color: #ff79c6;\">async<\/span> () =&gt; {\n    <span style=\"color: #ff79c6;\">const<\/span> proxy = <span style=\"color: #f1fa8c;\">`socks5:\/\/${<\/span>PROXY_USER<span style=\"color: #f1fa8c;\">}:${<\/span>PROXY_PASS<span style=\"color: #f1fa8c;\">}@${<\/span>PROXY_HOST<span style=\"color: #f1fa8c;\">}:${<\/span>PROXY_PORT<span style=\"color: #f1fa8c;\">}`<\/span>;\n\n    <span style=\"color: #ff79c6;\">const<\/span> anonymizedProxy = <span style=\"color: #ff79c6;\">await<\/span> proxyChain.<span style=\"color: #50fa7b;\">anonymizeProxy<\/span>(proxy);\n\n    <span style=\"color: #ff79c6;\">const<\/span> browser = <span style=\"color: #ff79c6;\">await<\/span> puppeteer.<span style=\"color: #50fa7b;\">launch<\/span>({\n        args: [<span style=\"color: #f1fa8c;\">`--proxy-server=${<\/span>anonymizedProxy<span style=\"color: #f1fa8c;\">}`<\/span>],\n    });\n\n    <span style=\"color: #ff79c6;\">const<\/span> page = <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">newPage<\/span>();\n    <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">goto<\/span>(<span style=\"color: #f1fa8c;\">'https:\/\/httpbin.org\/ip'<\/span>);\n    <span style=\"color: #ff79c6;\">const<\/span> content = <span style=\"color: #ff79c6;\">await<\/span> page.<span style=\"color: #50fa7b;\">content<\/span>();\n    console.<span style=\"color: #50fa7b;\">log<\/span>(content);\n\n    <span style=\"color: #ff79c6;\">await<\/span> browser.<span style=\"color: #50fa7b;\">close<\/span>();\n    <span style=\"color: #ff79c6;\">await<\/span> proxyChain.<span style=\"color: #50fa7b;\">closeAnonymizedProxy<\/span>(anonymizedProxy, <span style=\"color: #bd93f9;\">true<\/span>);\n})();<\/code><\/pre>\n<\/div>\n<p>Il est important de noter que, dans ce cas, l\u2019adresse <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">PROXY_PORT<\/code> devient 10800 pour le protocole SOCKS5 et que l\u2019adresse du proxy lui-m\u00eame commence par <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">socks5:\/\/<\/code> et non par <code style=\"font-family: &#39;Fira Code&#39;,Consolas,monospace; background: #f4f4f5; color: #b45309; padding: 2px 6px; border-radius: 4px; font-size: 0.9em;\">http:\/\/<\/code>.<\/p>\n<h2>Conclusion<\/h2>\n<p>Les proxys constituent un \u00e9l\u00e9ment essentiel de toute configuration d\u2019automatisation Puppeteer digne de ce nom. Dans ce guide, nous avons abord\u00e9 les principales raisons de les utiliser, leur comparaison avec les VPN, et nous avons pass\u00e9 en revue toutes les principales m\u00e9thodes d\u2019int\u00e9gration \u2013 de l\u2019authentification de base aux pools rotatifs, en passant par la configuration SOCKS5 avec une cha\u00eene de proxys. Avec un fournisseur fiable comme Floppydata et une configuration adapt\u00e9e \u00e0 votre cas d\u2019utilisation, vous disposerez d\u2019un pipeline r\u00e9silient et \u00e9volutif, capable de r\u00e9pondre \u00e0 toutes les exigences de votre flux de travail.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Puppeteer est l&rsquo;une des biblioth\u00e8ques Node.js les plus populaires et un outil puissant pour l&rsquo;automatisation de t\u00e2ches telles que le web scraping, les tests, la recherche SEO ou le suivi des prix via les navigateurs Chrome ou Chromium. Si vous avez d\u00e9j\u00e0 travaill\u00e9 avec un flux de travail automatis\u00e9 \u00e0 grande \u00e9chelle, vous connaissez d\u00e9j\u00e0 [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":47294,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[439,487],"tags":[],"class_list":["post-47423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-how-to"],"acf":[],"_links":{"self":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts\/47423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/comments?post=47423"}],"version-history":[{"count":0,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts\/47423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/media\/47294"}],"wp:attachment":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/media?parent=47423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/categories?post=47423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/tags?post=47423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}