Skip to content
Beginner / 7 min read

Selenium Rotating Proxy: IPs in Selenium WebDriver rotieren (Einsteigerleitfaden)

Ein einsteigerfreundlicher Leitfaden zur Rotation von Proxies in Selenium WebDriver. Richten Sie eine Proxy-Liste ein, behandeln Sie Authentifizierung, überprüfen Sie IP-Änderungen und erfahren Sie, wann ein dediziertes WireGuard-Gateway von NordLayer die klügere Wahl ist.

SOCKS5 WireGuard Web Scraping Privatsphäre/Anonymität

Überblick

Selenium WebDriver rotiert Proxies nicht von selbst. Wenn Sie in großem Umfang scrapen oder testen, stößt eine einzelne IP-Adresse schnell an Rate Limits, Geo-Blocks oder CAPTCHAs. Dieses Tutorial zeigt Ihnen, wie Sie Selenium einen Proxy zuweisen, durch eine Liste von Proxies rotieren, überprüfen, ob die IP tatsächlich geändert wurde, und entscheiden, wann ein dediziertes WireGuard-Gateway (wie NordLayer) besser geeignet ist als ein rotierender Proxy-Pool.

Warum Proxies in Selenium rotieren?

  • IP-basierte Rate Limits und temporäre Sperren vermeiden.
  • Auf Inhalte zugreifen, die nur in bestimmten Regionen verfügbar sind.
  • Testen, wie sich Ihre Website oder App von verschiedenen Standorten aus verhält.
  • Anfragen verteilen, damit eine IP nicht wie ein Bot aussieht.

Rotationsstrategien

Wählen Sie eine Strategie danach, wie viele Anfragen Sie benötigen und wie lange jede Sitzung aktiv bleiben muss.

  • Listenbasierte Rotation — durchlaufen Sie eine feste Liste von Proxies. Einfach und kostenlos, aber jeder Proxy wird wiederverwendet.
  • Zufällige Rotation — wählen Sie für jede Sitzung einen zufälligen Proxy. Verringert vorhersehbare Muster.
  • Round-Robin — verwenden Sie Proxies der Reihe nach. Gut für gleichmäßige Verteilung.
  • Sticky Session — behalten Sie denselben Proxy für einen Login- oder Checkout-Vorgang bei und wechseln Sie dann.
  • Rotierendes Gateway — ein einzelner Endpunkt, der IPs für Sie auf Anbieterseite rotiert. Weniger Code, aber weniger Kontrolle.

Für viele kleine Projekte reicht eine zufällige Auswahl aus einer Liste. Für Produktions-Scraping sollten Sie einen verwalteten rotierenden Proxy-Dienst oder ein dediziertes WireGuard-Gateway für stabilen, nicht rotierenden Zugriff in Betracht ziehen.

Voraussetzungen

  • Python 3.8 oder neuer.
  • Google Chrome oder Mozilla Firefox installiert.
  • Eine Proxy-Liste (HTTP, HTTPS oder SOCKS5) oder ein rotierendes Proxy-Abonnement.
  • Grundlegende Vertrautheit mit dem Ausführen von Python-Skripten.

Schritte

  1. Installieren Sie Selenium und einen WebDriver-Manager.

    Installieren Sie Selenium und einen Helfer, der den richtigen Browser-Treiber automatisch herunterlädt.

    pip install selenium webdriver-manager
    
  2. Bereiten Sie Ihre Proxy-Liste vor.

    Erstellen Sie eine Liste von Proxies in Python. Verwenden Sie das vollständige Schema, damit Selenium weiß, wie eine Verbindung hergestellt wird.

    PROXIES = [
        'http://user:[email protected]:8080',
        'http://proxy2.example.com:8080',
        'socks5://proxy3.example.com:1080',
    ]
    

    Wenn Ihre Proxies Benutzername und Passwort erfordern, lesen Sie Schritt 4, bevor Sie fortfahren.

  3. Konfigurieren Sie einen einzelnen Proxy in Selenium (Chrome).

    Übergeben Sie den Proxy an Chrome mit dem Argument --proxy-server.

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.service import Service
    
    proxy = 'http://proxy2.example.com:8080'
    
    options = Options()
    options.add_argument(f'--proxy-server={proxy}')
    options.add_argument('--headless=new')
    
    driver = webdriver.Chrome(
        service=Service(ChromeDriverManager().install()),
        options=options
    )
    driver.get('https://api.ipify.org?format=json')
    print(driver.page_source)
    driver.quit()
    

    Chrome akzeptiert keine Anmeldeinformationen innerhalb der Zeichenfolge --proxy-server. Wenn Ihr Proxy eine Authentifizierung benötigt, verwenden Sie IP-Whitelisting oder wechseln Sie zu Firefox (Schritt 4).

  4. Behandeln Sie die Proxy-Authentifizierung.

    Firefox-Profile können Proxy-Anmeldeinformationen senden. Das ist für einsteigerfreundliche Setups ohne zusätzliche Bibliotheken nützlich.

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    proxy_host = 'proxy2.example.com'
    proxy_port = 8080
    
    options = Options()
    options.set_preference('network.proxy.type', 1)
    options.set_preference('network.proxy.http', proxy_host)
    options.set_preference('network.proxy.http_port', proxy_port)
    options.set_preference('network.proxy.ssl', proxy_host)
    options.set_preference('network.proxy.ssl_port', proxy_port)
    
    driver = webdriver.Firefox(options=options)
    driver.get('https://api.ipify.org?format=json')
    print(driver.page_source)
    driver.quit()
    

    Für SOCKS5 mit Authentifizierung besteht der einfachste Weg für Einsteiger darin, Ihren Proxy-Anbieter um IP-Whitelist-Zugriff zu bitten. So betten Sie niemals ein Passwort in Ihr Skript ein.

  5. Rotieren Sie Proxies pro Sitzung.

    Erstellen Sie einen frischen WebDriver mit einem zufällig ausgewählten Proxy für jede URL oder Aufgabe. Beenden Sie den Treiber immer, wenn Sie fertig sind.

    import random
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.service import Service
    
    PROXIES = [
        'http://proxy1.example.com:8080',
        'http://proxy2.example.com:8080',
        'socks5://proxy3.example.com:1080',
    ]
    
    def get_driver():
        proxy = random.choice(PROXIES)
        options = Options()
        options.add_argument(f'--proxy-server={proxy}')
        options.add_argument('--headless=new')
        return webdriver.Chrome(
            service=Service(ChromeDriverManager().install()),
            options=options
        )
    
    urls = [
        'https://example.com/page-1',
        'https://example.com/page-2',
    ]
    
    for url in urls:
        driver = get_driver()
        try:
            driver.get(url)
            print(driver.title)
        finally:
            driver.quit()
    

    Dieses Muster ist leicht zu lesen, aber für jede Anfrage einen neuen Browser zu starten ist langsam. Für größere Aufgaben führen Sie mehrere Treiber parallel aus oder verwenden Sie einen rotierenden Gateway-Endpunkt. Wenn Sie eine stabile, nicht rotierende IP für Logins oder Admin-Panels benötigen, springen Sie zu Schritt 7.

  6. Überprüfen Sie, ob sich die IP-Adresse geändert hat.

    Gehen Sie niemals davon aus, dass der Proxy funktioniert hat. Prüfen Sie die Egress-IP, bevor Sie scrapen.

    import json
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument('--proxy-server=http://proxy2.example.com:8080')
    options.add_argument('--headless=new')
    
    driver = webdriver.Chrome(options=options)
    driver.get('https://api.ipify.org?format=json')
    body = driver.find_element('tag name', 'body').text
    ip_info = json.loads(body)
    print(ip_info['ip'])
    driver.quit()
    

    Wenn die ausgegebene IP mit Ihrer echten IP übereinstimmt, wird der Proxy nicht verwendet. Prüfen Sie das Proxy-Format und die Authentifizierung.

  7. Wählen Sie zwischen rotierenden Proxies und einem dedizierten WireGuard-Gateway.

    Rotierende Proxies sind ideal für anonyme Anfragen mit hohem Volumen. Aber einige Aufgaben benötigen das Gegenteil: eine stabile IP in Unternehmensqualität, die für jede Anfrage gleich bleibt.

    Verwenden Sie ein dediziertes WireGuard-Gateway wie NordLayer, wenn Sie Folgendes benötigen:

    • Eine konsistente Egress-IP für Teammitglieder oder automatisierte Jobs.
    • Verschlüsselte Tunnel statt Proxy-Einstellungen pro App.
    • Schnelles Onboarding für ein kleines Team, ohne Proxy-Listen pflegen zu müssen.
    • Einen separaten Netzwerkpfad für interne Tools, Staging-Sites oder Rank-Tracking aus einer Region.

    NordLayer bietet WireGuard-VPN-Tunnel in Unternehmensqualität mit dedizierten Gateways und monatlicher Pauschalabrechnung. Es ist kein rotierender Proxy-Pool, verwenden Sie es daher für Sitzungen, die auf einer IP bleiben müssen. Verwenden Sie rotierende Proxies, wenn jede Anfrage von einer anderen Adresse kommen soll.

Fehlerbehebung

Symptom Wahrscheinliche Ursache Lösung
Proxy-Verbindung verweigert Falscher Host, Port oder falsches Schema Stellen Sie sicher, dass die Proxy-Zeichenfolge http:// oder socks5:// enthält
407 Proxy Authentication Required Fehlende Anmeldeinformationen Verwenden Sie IP-Whitelisting oder ein Firefox-Profil mit Authentifizierung
WebDriver-Sitzung nicht erstellt Browser-/Treiber-Versionskonflikt Aktualisieren Sie Selenium und webdriver-manager
Anfragen zeigen weiterhin Ihre echte IP Proxy nicht angewendet Bestätigen Sie, dass --proxy-server vor driver.get() festgelegt ist
CAPTCHA oder Sperrseite Zu viele Anfragen oder ein markierter Proxy Drosseln Sie, rotieren Sie sorgfältiger oder verwenden Sie Residential-/ISP-IPs
SOCKS5-Proxy schlägt in Chrome fehl Chrome unterstützt Proxy-Authentifizierung für SOCKS5 im Argument nicht Verwenden Sie Firefox oder einen authentifizierten Unternehmenstunnel wie NordLayer

Zusammenfassung

  • Selenium rotiert Proxies nicht automatisch; Sie weisen pro Browsersitzung einen zu.
  • Für Einsteiger: Beginnen Sie mit einer kleinen Proxy-Liste, zufälliger Auswahl und einem frischen Treiber pro Aufgabe.
  • Firefox-Profile handhaben die Proxy-Authentifizierung einfacher als Chrome.
  • Überprüfen Sie immer die Egress-IP mit einem Dienst wie ipify, bevor Sie dem Proxy vertrauen.
  • Rotierende Proxies eignen sich am besten für verteiltes, anonymes Scraping.
  • Ein dediziertes WireGuard-Gateway wie NordLayer ist besser, wenn Sie eine stabile, verschlüsselte IP in Unternehmensqualität für Teams und langlebige Sitzungen benötigen.