Selenium Anleitung · 2 Min Lesezeit

Selenium-Proxy-Setup in Python und Java

Selenium kann einen Browser in ein paar Zeilen über einen Proxy leiten – aber authentifizierte Proxys benötigen eine Erweiterung oder einen ausgehenden Helfer, da Chrome USER:PASS nicht in der Befehlszeile akzeptiert. Hier ist das zuverlässige Muster.

Das Authentifizierungsproblem in Selenium

Setting an unauthenticated proxy in Selenium is trivial: add --proxy-server=http://host:3128 to Chrome options, or fill Selenium's Proxy object, and you are done. The moment the proxy needs a username and password, that simple path breaks — Chrome refuses credentials inline, and unlike Puppeteer or Playwright, Selenium has no built-in authenticate() hook to answer the 407 challenge.

Die robuste, plattformübergreifende Lösung ist eine winzige Chrome-Erweiterung, die zur Laufzeit generiert wird und Ihre Anmeldeinformationen trägt und die Authentifizierungsanfrage des Proxys über die webRequest API beantwortet. Sie funktioniert headless, benötigt keine zusätzlichen Dienste und verhält sich in Python und Java gleich. Mit s4m richten Sie die Erweiterung auf proxy.s4m.online:3128 (HTTP) und Ihre USER:PASS. Siehe die Proxy-Seite und den Authentifizierungsleitfaden für Hintergrundinformationen; für eine Option ohne Authentifizierung während des Tests enthält die kostenlose Liste offene Proxys, die Sie direkt in das Befehlszeilen-Flag einfügen können.

Authentifizierter Proxy über eine generierte Erweiterung

Dieser Python-Helfer schreibt eine wegwerfbare Chrome-Erweiterung mit Ihren Anmeldeinformationen und lädt sie dann. Ersetzen Sie USER:PASS vor dem Ausführen.

python
import os, zipfile, tempfile
from selenium import webdriver

HOST, PORT, USER, PASS = "proxy.s4m.online", 3128, "USER", "PASS"

manifest = '{"version":"1.0.0","manifest_version":2,"name":"s4m-proxy",'\
  '"permissions":["proxy","webRequest","webRequestBlocking","<all_urls>"],'\
  '"background":{"scripts":["bg.js"]}}'

bg = ('var c={mode:"fixed_servers",rules:{singleProxy:'
      '{scheme:"http",host:"%s",port:%d}}};'
      'chrome.proxy.settings.set({value:c,scope:"regular"},function(){});'
      'chrome.webRequest.onAuthRequired.addListener('
      'function(d){return {authCredentials:{username:"%s",password:"%s"}};},'
      '{urls:["<all_urls>"]},["blocking"]);') % (HOST, PORT, USER, PASS)

path = os.path.join(tempfile.mkdtemp(), "s4m_proxy.zip")
with zipfile.ZipFile(path, "w") as z:
    z.writestr("manifest.json", manifest)
    z.writestr("bg.js", bg)

opts = webdriver.ChromeOptions()
opts.add_extension(path)
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print("Exit IP:", driver.find_element("tag name", "body").text)
driver.quit()

# ----- Java (unauthenticated proxy) -----
// Proxy p = new Proxy();
// p.setHttpProxy("proxy.s4m.online:3128");
// ChromeOptions o = new ChromeOptions();
// o.setProxy(p);
// WebDriver driver = new ChromeDriver(o);

Wählen Sie Ihren Ansatz

Wähle basierend darauf, ob der Proxy Anmeldeinformationen benötigt.

Keine Authentifizierung? Verwenden Sie das Flag

Für einen nicht authentifizierten Proxy fügen Sie einfach --proxy-server=http://host:3128 zu ChromeOptions hinzu oder setzen das Proxy-Objekt von Selenium. Nichts weiter erforderlich.

Auth? Generieren Sie eine Erweiterung

Für USER:PASS-Proxys, versenden Sie eine kleine Laufzeiterweiterung, die auf onAuthRequired antwortet. Es funktioniert kopflos und verhält sich in allen Sprachen gleich.

HTTP-Endpunkt für Browser

Verwende proxy.s4m.online:3128 (HTTP). Authentifizierte SOCKS5 innerhalb eines Browsers sind unzuverlässig, also behalte SOCKS5 für CLI- und Bibliotheksclients.

Halten Sie die Erweiterung privat

Die generierte Erweiterung bettet Ihre Anmeldeinformationen in eine temporäre Datei ein. Schreiben Sie sie in ein privates temporäres Verzeichnis und bereinigen Sie es nach dem Durchlauf.

Zuverlässigkeit und ehrliche Erwartungen

Selenium steuert einen echten Browser, was sowohl seine Stärke als auch seine Kosten ist: Er ist schwerer als ein reiner HTTP-Client, also halte Sitzungen zielgerichtet und schließe Treiber umgehend. Wenn du nur HTML benötigst, ist ein HTTP-Client hinter einem Proxy viel günstiger — siehe Scraping mit Requests. Greife auf Selenium zurück, wenn JavaScript-Rendering oder echte Benutzerinteraktion erforderlich ist.

Wie immer ändert ein Proxy deine IP, nicht deinen Fingerabdruck. s4m-Proxys sind Datacenter — ideal für funktionale Tests, Überwachung und moderates Scraping, aber auf feindlichen Seiten als Datacenter erkennbar. Wenn ein Login oder eine Allowlist eine stabile Adresse erwartet, füge eine dedizierte persönliche IP hinzu. Für neuere Projekte ziehe Playwright in Betracht, dessen native Proxy-Authentifizierung den Erweiterungstanz vollständig vermeidet. Überprüfe Ausgänge mit den Tools und lies die API-Dokumentation, um die Rotation von Anmeldeinformationen zu automatisieren.

FAQ

Fragen, beantwortet

Warum kann ich USER:PASS nicht im Proxy-Flag von Selenium verwenden?

Chrome ignoriert Anmeldeinformationen im --proxy-server-Flag und zeigt stattdessen eine native Authentifizierungsaufforderung an, die ein kopfloser Browser nicht beantworten kann. Die zuverlässige Lösung ist eine kleine Runtime-Chrome-Erweiterung, die auf onAuthRequired mit Ihrem Benutzernamen und Passwort reagiert.

Gibt es einen einfacheren Weg für nicht authentifizierte Proxys?

Ja. Ohne Anmeldeinformationen können Sie einfach --proxy-server=http://host:3128 zu ChromeOptions hinzufügen oder das Proxy-Objekt von Selenium in Java ausfüllen. Die Erweiterung wird nur benötigt, wenn der Proxy USER:PASS erfordert.

Sollte ich SOCKS5 oder HTTP mit Selenium verwenden?

Verwenden Sie den HTTP-Endpunkt auf Port 3128 für Browser. Authentifiziertes SOCKS5 in einem Browser ist unzuverlässig; behalten Sie SOCKS5 für die Befehlszeile und Bibliotheksclients.

Wäre Playwright einfacher?

Oft, ja. Der Playwright nimmt Proxy-Anmeldeinformationen nativ in seinem Proxy-Objekt auf, sodass Sie die Erweiterung vollständig überspringen. Selenium ist immer noch die richtige Wahl, wenn Ihr Projekt bereits davon abhängt.

Leite Browser über einen Proxy

Authentifizierte Datacenter-Proxys auf proxy.s4m.online, bereit für Selenium über eine generierte Erweiterung. Abrechnung nach Verbrauch, mit einer dedizierten IP-Option für stabile Logins.

Menschen fanden diese Seite durch die Suche nach

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.