Zum Inhalt springen

So verwenden Sie Proxies mit Selenium: Complete Guide

TL;DR

Konfigurieren Sie GProxy proxies mit Selenium WebDriver für Browser-Automatisierung und Scraping. Deckt Chrome, Firefox, headless mode und proxy authentication ab.

Sprache: Python

Voraussetzungen

  • Python 3.8+ installiert
  • Selenium 4.x installiert (pip install selenium)
  • ChromeDriver oder GeckoDriver passend zu Ihrer Browser-Version
  • GProxy-Account mit aktivem Proxy-Plan

Schritt-für-Schritt-Einrichtung

1

Selenium installieren

Installieren Sie Selenium und webdriver-manager

pip install selenium webdriver-manager
2

Chrome mit proxy konfigurieren

Chrome WebDriver mit GProxy einrichten

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

opts = Options()
opts.add_argument('--proxy-server=http://proxy.gproxy.net:1000')
driver = webdriver.Chrome(options=opts)
3

Proxy-Authentifizierung handhaben

Für authentifizierte Proxys eine Chrome-Extension erstellen

import zipfile, json

manifest = {"version": "1.0.0", "manifest_version": 2,
  "name": "Proxy Auth",
  "permissions": ["proxy","webRequest","webRequestBlocking","<all_urls>"],
  "background": {"scripts": ["background.js"]}}

bg_js = 'chrome.webRequest.onAuthRequired.addListener(function(d) { return {authCredentials: {username:"USER", password:"PASS"}}; }, {urls:["<all_urls>"]}, ["blocking"]);'

with zipfile.ZipFile('proxy_auth.zip','w') as zp:
    zp.writestr('manifest.json', json.dumps(manifest))
    zp.writestr('background.js', bg_js)

opts.add_extension('proxy_auth.zip')
4

Rotationslogik hinzufügen

IPs rotieren, indem neue driver-Instanzen erstellt werden

def get_driver():
    opts = Options()
    opts.add_argument('--headless=new')
    opts.add_argument('--proxy-server=http://proxy.gproxy.net:1000')
    return webdriver.Chrome(options=opts)

for url in urls:
    driver = get_driver()
    driver.get(url)
    # ... extract data
    driver.quit()
5

Setup testen

Überprüfen, ob der proxy funktioniert

driver.get('https://httpbin.org/ip')
print(driver.find_element('tag name', 'pre').text)

Codebeispiele

Chrome mit Proxy Auth Extension · python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import zipfile, json

def create_proxy_extension(proxy_host, proxy_port, proxy_user, proxy_pass):
    manifest = {
        "version": "1.0.0", "manifest_version": 2,
        "name": "GProxy Auth",
        "permissions": ["proxy", "webRequest", "webRequestBlocking", "<all_urls>"],
        "background": {"scripts": ["background.js"]}
    }
    bg_js = f'chrome.webRequest.onAuthRequired.addListener(function(details) {{ return {{authCredentials: {{username: "{proxy_user}", password: "{proxy_pass}"}}}}; }}, {{urls: ["<all_urls>"]}}, ["blocking"]);'
    ext_path = '/tmp/proxy_auth.zip'
    with zipfile.ZipFile(ext_path, 'w') as zp:
        zp.writestr('manifest.json', json.dumps(manifest))
        zp.writestr('background.js', bg_js)
    return ext_path

opts = Options()
opts.add_argument('--proxy-server=http://proxy.gproxy.net:1000')
opts.add_extension(create_proxy_extension('proxy.gproxy.net', 1000, 'USER', 'PASS'))
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=opts)
driver.get('https://httpbin.org/ip')
print(driver.find_element('tag name', 'pre').text)
driver.quit()
Firefox mit Proxy · python
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', 'proxy.gproxy.net')
opts.set_preference('network.proxy.http_port', 1000)
opts.set_preference('network.proxy.ssl', 'proxy.gproxy.net')
opts.set_preference('network.proxy.ssl_port', 1000)
driver = webdriver.Firefox(options=opts)
driver.get('https://httpbin.org/ip')
print(driver.page_source)
driver.quit()
Multi-Session Rotation · python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from concurrent.futures import ThreadPoolExecutor

def scrape_with_proxy(url):
    opts = Options()
    opts.add_argument('--headless=new')
    opts.add_argument('--proxy-server=http://proxy.gproxy.net:1000')
    opts.add_argument('--no-sandbox')
    driver = webdriver.Chrome(options=opts)
    try:
        driver.set_page_load_timeout(30)
        driver.get(url)
        return driver.page_source
    finally:
        driver.quit()

urls = ['https://example.com/page1', 'https://example.com/page2']
with ThreadPoolExecutor(max_workers=4) as pool:
    results = list(pool.map(scrape_with_proxy, urls))

Warum Proxies mit Selenium verwenden?

Selenium automatisiert echte Browser und ist daher ideal für das Scraping von JavaScript-lastigen Websites. Das Ausführen automatisierter Browser von einer einzigen IP aus löst jedoch schnell Anti-Bot-Systeme aus. Die über 10M+ residential IPs von GProxy ermöglichen es Ihnen, die Exit-IP Ihres Browsers zu rotieren, sodass jede Sitzung wie ein einzigere Besucher aus einem von über 150+ Ländern erscheint.

Chrome WebDriver Proxy Setup

Chrome unterstützt die Proxy-Konfiguration über ChromeOptions-Argumente. Für einfache Proxy-Setups ohne Authentifizierung übergeben Sie das Argument --proxy-server. Für authentifizierte Proxies wie GProxy benötigen Sie eine Chrome-Erweiterung, die die Proxy-Authentifizierung übernimmt, da Chrome nativ kein username:password in der Proxy-URL unterstützt.

Firefox WebDriver Proxy Setup

Firefox verwaltet die Proxy-Konfiguration über die FirefoxProfile- oder Options-Einstellungen. Im Gegensatz zu Chrome unterstützt Firefox die Proxy-Authentifizierung über die Profileinstellungen, was die Konfiguration mit den authentifizierten Endpunkten von GProxy etwas einfacher macht.

Headless Mode Überlegungen

Das Ausführen von Selenium im headless Mode ist für Server-Bereitstellungen üblich. Sowohl Chrome als auch Firefox unterstützen den headless Betrieb mit Proxies. Beachten Sie, dass einige Anti-Bot-Systeme headless Browser erkennen – die residential IPs von GProxy helfen hierbei, aber ziehen Sie auch die Verwendung von undetected-chromedriver oder das Hinzufügen realistischer Browser-Fingerprints in Betracht.

Proxy-Rotationsstrategie

Im Gegensatz zu HTTP-Bibliotheken behält Selenium eine Browser-Sitzung bei, sodass Sie Proxies nicht einfach pro Request rotieren können. Rotieren Sie stattdessen pro Sitzung: Erstellen Sie für jede Aufgabe eine neue WebDriver-Instanz mit einem anderen Proxy. Der Backconnect-Endpunkt von GProxy vereinfacht dies – jede neue Verbindung erhält automatisch eine frische IP.

Performance-Tipps

Browser-Automatisierung ist ressourcenintensiv. Um den Durchsatz zu maximieren: Verwenden Sie den headless Mode, deaktivieren Sie das Laden von Bildern und CSS, wenn diese nicht benötigt werden, setzen Sie Timeouts für das Laden von Seiten und führen Sie mehrere Browser-Instanzen parallel mit verschiedenen GProxy-Endpunkten für IP-Diversität aus.

Anwendungsfälle

JavaScript-Heavy Scraping

Scrapen Sie SPAs und dynamische Websites, die ein vollständiges Browser-Rendering erfordern.

Form Automation

Automatisieren Sie Formularübermittlungen und mehrstufige Workflows über proxied Browser.

Visual Testing

Erstellen Sie Screenshots von verschiedenen Geo-Standorten unter Verwendung gezielter Residential Proxies.

Account Management

Verwalten Sie mehrere Konten mit eindeutigen IPs pro Sitzung für sichere Automatisierung.

Profi-Tipps
Verwenden Sie undetected-chromedriver, um Cloudflare und Anti-Bot-Systeme zu umgehen. Deaktivieren Sie Bilder mit prefs, um das Laden von Seiten zu beschleunigen, wenn Sie nur Text benötigen. Setzen Sie page_load_timeout auf 30s, um ein Hängenbleiben bei langsamen Seiten zu vermeiden. Nutzen Sie GProxy sticky sessions für Workflows über mehrere Seiten, die konsistente IPs erfordern.

FAQ

Funktioniert Selenium mit SOCKS5 Proxies? +
Ja, verwenden Sie --proxy-server=socks5://host:port für Chrome. Firefox unterstützt SOCKS5 über die Profileinstellungen.
Kann ich Proxies während einer Sitzung rotieren? +
Nicht ohne den Browser neu zu starten. Für eine Rotation pro Anfrage sollten Sie Playwright oder Puppeteer in Betracht ziehen, die Proxy-Änderungen pro Kontext unterstützen.
Wie vermeide ich die Erkennung mit Selenium? +
Verwenden Sie undetected-chromedriver, GProxy residential IPs, realistische User Agents und vermeiden Sie Headless-Erkennungsmuster.
Ist Selenium langsamer als requests? +
Ja, Browser-Automatisierung ist 5-10x langsamer. Verwenden Sie Selenium nur für JS-gerenderte Inhalte; verwenden Sie requests/Scrapy für statische Seiten.

Bereit loszulegen?

Starten Sie mit GProxy in Minuten — Residential-Proxies ab $0,85/GB, IPv6 ab $0,03/Proxy, nutzungsbasierte Abrechnung.

Weitere Integrationen

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.