Comment utiliser des proxys gratuits avec Selenium ou Puppeteer

Comment utiliser des proxys gratuits avec Selenium ou Puppeteer

Comprendre les proxys dans l'automatisation web

Les proxys agissent comme des agents clandestins sur Internet, masquant votre adresse IP et vous permettant de naviguer discrètement sur le web. Dans le contexte de l'automatisation web – où Selenium et Puppeteer s'activent dans l'interface du navigateur – les proxys sont indispensables pour contourner les limitations de débit, les restrictions géographiques et la surveillance. Les proxys gratuits, bien que instables et éphémères, peuvent suffire pour des tâches de scraping ou de test légères et non critiques.

Types de proxys et leurs caractéristiques

Type de proxy Niveau d'anonymat Protocoles pris en charge Cas d'utilisation typique Fiabilité
HTTP Faible à moyen HTTP, HTTPS Extraction de données web simple Faible
SOCKS4/5 Haut SOCKS4, SOCKS5 Protocoles complexes, HTTPS Moyen
Transparent Aucun (révèle l'adresse IP) HTTP, HTTPS Mise en cache, usage interne Très faible
Élite/Anonyme Haut HTTP, HTTPS Contourner les blocages géographiques Moyen

Pour obtenir un recueil de listes de serveurs proxy gratuits, consultez https://free-proxy-list.net/ ou https://www.sslproxies.org/.

Utilisation de proxys gratuits avec Selenium (Python)

1. Installation des dépendances

pip installe sélénium

Téléchargez la dernière version ChromeDriver compatible avec votre version de Chrome.

2. Configuration d'un proxy dans Selenium

Le navigateur, cette marionnette numérique, peut être commandé ainsi :

from selenium import webdriver from selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Remplacez par votre proxy gratuit options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()

Tableau : Commutateurs de proxy Chrome courants

Option Description
--serveur-proxy=http://IP:PORT Configurer le proxy HTTP
--serveur-proxy=https=IP:PORT Configurer le proxy HTTPS
--liste-de-contournement-proxy=localhost;127.0.0.1 Exclure les adresses du proxy

3. Utilisation de proxys avec authentification

Les proxys gratuits avec authentification sont des perles rares, mais si vous en trouvez un par hasard :

from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # Les proxys authentifiés nécessitent une extension Chrome pour contourner le problème. from selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( callbackFn, {{urls: [" "]}}, ['blocking'] ); """ # Créer le fichier d'extension proxy pluginfile = 'proxy_auth_plugin.zip' avec zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')

Référence: Authentification par proxy Selenium (Gist GitHub)

Utilisation de proxys gratuits avec Puppeteer (Node.js)

1. Installation de Puppeteer

npm installer puppeteer

2. Lancement de Puppeteer via un proxy

Que le navigateur revête son nouveau masque :

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

3. Gestion de l'authentification par proxy

Lorsque le gardien exige des justificatifs :

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

4. Rotation des proxys dans Puppeteer

Un ballet d'identités éphémères, orchestré ainsi :

const proxies = [ 'http://proxy1:port', 'http://proxy2:port', 'http://proxy3:port' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxies) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();

Sources de proxy gratuites

Nom URL Caractéristiques
Liste de proxy gratuits https://free-proxy-list.net/ Liste importante de fichiers HTTP/S, mise à jour
Proxys SSL https://www.sslproxies.org/ Proxies HTTPS, mise à jour rapide
ProxyScrape https://proxyscrape.com/free-proxy-list Plusieurs protocoles
Espions.un http://spys.one/en/ Filtrage avancé

Meilleures pratiques et limites

  • Nature éphémère : Les proxys gratuits disparaissent souvent sans prévenir ; surveillez leur disponibilité à l’aide d’outils comme… Vérificateur de proxy.
  • Rapidité et fiabilité : Attendez-vous à de la latence, des délais d'attente et parfois à des impasses.
  • Sécurité: N’utilisez jamais de proxys gratuits pour les comptes sensibles : les attaques de type « homme du milieu » rôdent dans l’ombre.
  • Considérations juridiques et éthiques : Veuillez toujours respecter le fichier robots.txt et les conditions d'utilisation.

Exemple de validation de proxy (Python)

Avant d'ouvrir votre navigateur, testez le fonctionnement du proxy :

import requests proxy = "186.121.235.66:8080" proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"} try: response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) print(response.json()) except Exception as e: print(f"Échec du proxy : {e}")

Liens vers les ressources

Théophile Beauvais

Théophile Beauvais

Analyste de proxy

Théophile Beauvais est un analyste proxy de 21 ans chez ProxyMist, où il se spécialise dans la conservation et la mise à jour de listes complètes de serveurs proxy du monde entier. Doté d'une aptitude innée pour la technologie et la cybersécurité, Théophile est devenu un membre essentiel de l'équipe, assurant la livraison gratuite de serveurs proxy SOCKS, HTTP, élite et anonymes fiables aux utilisateurs du monde entier. Né et élevé dans la ville pittoresque de Lyon, Théophile'sa passion pour la confidentialité numérique et l'innovation a été éveillée dès son plus jeune âge.

Commentaires (0)

Il n'y a pas encore de commentaires ici, vous pouvez être le premier !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *