Option 1 : liste blanche IP (recommandée pour les serveurs)#
Soumettez l’IPv4 publique sortante réelle du serveur dans Access et attendez l’activation de l’administrateur. NAT ou un VPN peut modifier l'adresse vue par la passerelle. L'accès sans mot de passe ne fonctionne qu'après confirmation de l'entrée pour le service attribué. Confirmez les options de pays et de session séparément ; une liste blanche d'adresse IP source n'envoie pas de paramètres de nom d'utilisateur. liste blanche
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument("--proxy-server=http://res.proxy-cyber.com:9000")
opts.add_argument("--headless=new")
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()Option 2 : authentification WebDriver BiDi #
L'exemple utilise l'API WebDriver BiDi maintenue par Selenium, avec activate_bidi et network.add_auth_handler. Testez une simulation de proxy HTTP avec le navigateur et le pilote installés avant de l'utiliser dans une tâche. Le gestionnaire n'est pas limité à un seul hôte, utilisez donc une session de navigateur isolée sans invites d'authentification indépendantes. Si l'authentification proxy n'est pas prise en charge dans votre combinaison de versions, utilisez une liste blanche d'adresses IP activée.
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.enable_bidi = True
options.add_argument("--proxy-server=" + os.environ["PROXY_SERVER"])
with webdriver.Chrome(options=options) as driver:
handler = driver.network.add_auth_handler(
os.environ["PROXY_USER"], os.environ["PROXY_PASSWORD"]
)
try:
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
finally:
driver.network.remove_auth_handler(handler)Firefox#
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.set_preference("network.proxy.type", 1)
opts.set_preference("network.proxy.http", "res.proxy-cyber.com")
opts.set_preference("network.proxy.http_port", 9000)
opts.set_preference("network.proxy.ssl", "res.proxy-cyber.com")
opts.set_preference("network.proxy.ssl_port", 9000)
opts.set_preference("media.peerconnection.enabled", False) # no WebRTC leak
driver = webdriver.Firefox(options=opts) # whitelisted server, no promptRègles pratiques#
- Utilisez un identifiant de session distinct pour chaque flux de travail indépendant, lorsque la passerelle attribuée le prend en charge. Confirmez la durée autorisée et les paramètres de localisation dans les détails de votre connexion. Un appareil résidentiel peut se déconnecter avant la durée demandée ; une session persistante n'est pas une garantie de la même IP pendant des jours. Pour une adresse fixe, comparez un produit statique dédié.
- Utiliser
--headless=newdans Chrome ; l'ancien mode sans tête a une empreinte digitale distinctive. - Des identifiants de session distincts isolent les préférences de routage, et non les cookies du navigateur ou l'état de l'application. Commencez avec un petit nombre de travailleurs, mesurez les erreurs et le trafic, et augmentez progressivement dans les limites confirmées pour votre commande et la destination. Une sélection étroite de villes ou de opérateurs peut réduire la capacité disponible.
Les questions que les gens posent#
Pourquoi Chrome affiche-t-il une invite de connexion proxy avec Selenium ?
Utilisez une liste blanche d'adresse IP source activée pour un serveur fixe ou testez le gestionnaire d'authentification WebDriver BiDi actuel de Selenium avec le navigateur installé. Ne comptez pas sur une installation Selenium Wire archivée pour une nouvelle intégration.