# Playwright Proxy: Einrichtung mit Authentifizierung, Python und Node | ProxyJam

So setzen Sie einen Playwright-Proxy pro Browser oder pro Kontext, mit Benutzername und Passwort über HTTP, und warum SOCKS5 eine IP-Whitelist braucht. Getesteter Code.

- Canonical: https://proxyjam.com/de/integrations/playwright/
- Updated: 2026-10-23
- Language: de

Geben Sie Playwright eine statische ISP-Adresse, beim Start oder für einen einzelnen Browserkontext. Die Beispiele wurden vor der Veröffentlichung in Chromium, Firefox und WebKit gegen einen lokalen Proxy ausgeführt.


Übergeben Sie proxy mit server, username und password an chromium.launch oder an browser.new_context, um ihn auf einen Kontext zu beschränken. Über HTTP authentifizieren sich alle drei Engines mit diesen Feldern. Über SOCKS5 akzeptiert keine von ihnen Benutzername und Passwort: Playwright verweigert den Start. Tragen Sie Ihre IP in die Whitelist des Proxys ein und geben Sie nur den socks5://-Server an.


## Einen Proxy in Playwright setzen

1. **Host, Port, Benutzername und Passwort kopieren** Aus Meine Proxys im Dashboard oder aus der Bestellung in der API. Jede Adresse kommt mit ihren eigenen vier Werten.
2. **Den Geltungsbereich wählen** Bei `launch` nutzt der ganze Browser den Proxy. Bei `new_context` nur dieser Kontext, sodass ein Skript mehrere Kontexte über verschiedene Adressen betreiben kann.
3. **Das Proxy-Objekt übergeben** `{"server": "http://HOST:PORT", "username": "USERNAME", "password": "PASSWORD"}`. Die Zugangsdaten stehen in eigenen Feldern, nie in der Server-URL.
4. **Wechsel zu SOCKS5? Zugangsdaten weglassen** Playwright kann sich nicht bei einem SOCKS5-Proxy anmelden. Schalten Sie die Bestellung daher auf SOCKS5 um, lassen Sie die IP Ihres Rechners mit dem Whitelist-Aufruf aus den Code-Tabs zu, und behalten Sie nur `socks5://HOST:PORT`, mit dem neuen Port. Solange eine Whitelist gesetzt ist, lässt der Proxy nur die eingetragenen Adressen zu, und Benutzername und Passwort funktionieren für diese Bestellung nicht mehr; senden Sie eine leere Liste, ist die Whitelist ausgeschaltet und die Anmeldung mit Passwort funktioniert wieder.
5. **Die Ausgangsadresse bestätigen** Öffnen Sie vor dem eigentlichen Lauf einmal [Was ist meine IP](/de/what-is-my-ip/) in einer Seite dieses Browsers oder Kontexts.

## Getesteter Code für Playwright

Ausgeführt mit Playwright 1.64 für Python und für Node. Die HTTP-Beispiele senden Benutzername und Passwort und brauchen eine Bestellung ohne gesetzte Whitelist; das SOCKS5-Beispiel stützt sich auf die Whitelist, und dafür muss der Proxy zuerst auf SOCKS5 umgeschaltet werden, was einen neuen Port ergibt. Ersetzen Sie die großgeschriebenen Platzhalter durch die Werte Ihrer Bestellung.

### Python

Proxy für den ganzen Browser, Python.

```
# pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://HOST:PORT",
        "username": "USERNAME",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
```

### Node.js

Proxy für den ganzen Browser, Node.

```
// npm i playwright && npx playwright install chromium
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'http://HOST:PORT',
      username: 'USERNAME',
      password: 'PASSWORD',
    },
  });
  const page = await browser.newPage();
  await page.goto('https://example.com/');
  console.log(await page.title());
  await browser.close();
})();
```

### Pro Kontext

Proxy für einen Browserkontext.

```
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    # The proxy belongs to this context only; another context can use
    # a different address, or none.
    context = browser.new_context(proxy={
        "server": "http://HOST:PORT",
        "username": "USERNAME",
        "password": "PASSWORD",
    })
    page = context.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
```

### SOCKS5

SOCKS5 mit einer IP aus der Whitelist.

```
# Switch the proxy to SOCKS5 and put your machine's IP on its whitelist:
# Chromium cannot send a SOCKS5 username and password.
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "socks5://HOST:PORT"})
    page = browser.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
```

### Whitelist-Aufruf

Ihre IP in die Whitelist des Proxys eintragen.

```
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'
```


## Was jeder Playwright-Browser akzeptiert

|  | HTTP mit Passwort | SOCKS5 mit Passwort | SOCKS5 mit Whitelist |
|---|---|---|---|
| Chromium | Funktioniert | Beim Start verweigert | Funktioniert |
| Firefox | Funktioniert | Beim Start verweigert | Funktioniert |
| WebKit | Funktioniert | Beim Start verweigert | Funktioniert |

Getestet am 2026-10-22 mit Playwright 1.64 für Python unter macOS: Jede Engine wurde gegen einen lokalen Proxy gestartet, der ein Passwort verlangte, und gegen einen, der einen Client aus der Whitelist zuließ. Verweigert heißt, dass Playwright beim Start mit einem Fehler abgebrochen hat.


## Wie die Adresse in das Modell von Playwright passt

- **Ein Kontext, eine Adresse:** Jeder Browserkontext kann seine eigene statische IP aus seiner eigenen Bestellung tragen
- **Anmeldung über HTTP:** Felder username und password, akzeptiert von Chromium, Firefox und WebKit
- **Anmeldung über SOCKS5:** Nur per IPv4-Adresse in der Whitelist, gesetzt über die API oder MCP
- **Stabilität:** Die IP bleibt über alle Läufe hinweg gleich, für den ganzen bezahlten Zeitraum

## Was bei Playwright-Proxys schiefgeht

### Zugangsdaten im Server-String

Playwright liest Benutzername und Passwort aus ihren eigenen Feldern. Stehen sie stattdessen in der Server-URL, werden sie gar nicht gesendet: In unserem Test hing die erste Navigation bis zum Timeout, ohne eine Meldung, die auf die Zugangsdaten hinwies.

### Ein SOCKS5-Passwort

Jede Engine verweigert die SOCKS5-Authentifizierung, und der Fehler kommt beim Start, bevor eine Seite geöffnet wird. Eine andere Bibliothek behebt das nicht: Tragen Sie die IP, von der Ihr Skript läuft, in die Whitelist ein und lassen Sie die Zugangsdaten weg.

### Erwarten, dass new_page die Adresse ändert

Seiten teilen sich den Proxy ihres Kontexts, und Kontexte teilen sich den des Browsers, sofern sie keinen eigenen bekommen. Um zwei Adressen nebeneinander zu betreiben, legen Sie zwei Kontexte an, jeden mit seinem Proxy.

### Die Prüfung der Ausgangsadresse auslassen

Ein Tippfehler im Port oder ein noch auf HTTP eingestellter Proxy scheitert deutlich sichtbar, ein ohne das Proxy-Objekt angelegter Kontext dagegen geht direkt und ohne Hinweis hinaus. Laden Sie pro eingerichtetem Kontext einmal eine Seite, die die IP zurückgibt.


## Fragen zu Proxys in Playwright

### Wie setze ich in Playwright einen Proxy mit Authentifizierung?

Übergeben Sie ein Objekt mit server, username und password, entweder an launch oder an new_context. Über einen HTTP-Proxy senden Chromium, Firefox und WebKit diese Zugangsdaten, wenn der Proxy danach fragt.

### Kann ich in Playwright einen SOCKS5-Proxy mit Passwort nutzen?

Nein. Playwright bricht in allen drei Engines beim Start mit einem Fehler ab, der besagt, dass der Browser keine SOCKS5-Proxy-Authentifizierung unterstützt. Tragen Sie die IP, von der Ihr Skript läuft, in die Whitelist ein und übergeben Sie dann nur den socks5-Server; unsere Whitelist gilt für SOCKS5 ebenso wie für HTTP.

### Wie nutze ich für jede Seite einen anderen Proxy?

Geben Sie jedem Browserkontext seinen eigenen Proxy und öffnen Sie die Seite in diesem Kontext. Seiten innerhalb eines Kontexts teilen sich immer seinen Proxy, ein Proxy pro Seite bedeutet also einen Kontext pro Seite.

### Ist die Einrichtung in Python und in Node gleich?

Dasselbe Objekt mit denselben drei Feldern: Python schreibt es als Dictionary, Node als Objektliteral. Beide Beispiele auf dieser Seite wurden mit Playwright 1.64 ausgeführt.

### Darf ich den Proxy für Scraping nutzen?

Tests Ihrer eigenen Seiten nach Region, Qualitätsprüfungen, Anzeigenüberprüfung, Preis- und Marktforschung, SEO-Monitoring und Markenschutz laufen nach unserer Richtlinie zur zulässigen Nutzung ohne vorherige Prüfung. Dass Daten öffentlich zugänglich sind, berechtigt allein noch nicht dazu, sie zu sammeln, personenbezogene Daten brauchen eine angegebene Rechtsgrundlage, und die Adresse kommt nicht an CAPTCHAs, Bot-Erkennung, Ratenlimits oder Sperren vorbei; die Richtlinie verbietet, es zu versuchen.


Kontexte und statische Adressen entsprechen einander eins zu eins: ein Kontext pro Markt oder pro Job, und jeder erreicht das Ziel bei jedem Lauf des Skripts von einer unveränderten IP aus. Kaufen Sie so viele Adressen, wie Sie Kontexte betreiben, auf der Seite [ISP-Proxys](/de/isp-proxies/), vergleichen Sie die Tarife unter [Preise](/de/pricing/), und rufen Sie mit der Anleitung für [Python requests](/de/integrations/python-requests/) ohne Browser ab.



## Quellen

- [Playwright documentation, Network: HTTP proxy](https://playwright.dev/python/docs/network#http-proxy): die Proxy-Option beim Start und pro Kontext
- [Playwright API, BrowserType.launch](https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch): die Felder server, bypass, username und password
- [RFC 1929, Username/Password Authentication for SOCKS V5](https://www.rfc-editor.org/rfc/rfc1929): die SOCKS5-Anmeldung, die die Browser nicht implementieren




Playwright steuert Chromium, Firefox und WebKit über eine einzige API, und der Proxy ist Teil dessen, wie ein Browser oder ein Kontext erzeugt wird. Das macht es leicht, in einem Skript mehrere Adressen zu betreiben, und genau dort liegt auch seine eine harte Grenze: SOCKS5 mit Passwort.

## Playwright Proxy in Python

Das Python-Beispiel startet Chromium mit dem Proxy für den ganzen Browser; das Beispiel pro Kontext beschränkt ihn stattdessen auf einen Kontext. Die Engine zu wechseln heißt, chromium durch firefox oder webkit zu ersetzen; das Proxy-Objekt bleibt gleich.

## Playwright Proxy-Authentifizierung

Die drei Engines beantworten die 407 des Proxys mit Benutzername und Passwort aus dem Proxy-Objekt, wenn der Proxy HTTP spricht. Ein SOCKS5-Proxy bekommt von keiner von ihnen eine solche Antwort, deshalb enthält das SOCKS5-Beispiel keine Zugangsdaten und stützt sich auf die Whitelist.

## Playwright Proxy pro Seite und bypass

Ein Proxy lässt sich nicht an eine einzelne Seite hängen. Die Einheit ist der Kontext: Legen Sie einen Kontext pro Adresse an und öffnen Sie darin die Seiten, die sich diese Adresse teilen sollen. Kontexte kosten in Playwright wenig, sodass ein Skript, das einen Shop aus drei Ländern prüft, drei Kontexte hält, jeden aus seiner eigenen Bestellung gebaut.

Das Proxy-Objekt nimmt außerdem ein Feld bypass, eine kommagetrennte Liste von Hosts, die direkt erreicht werden sollen. Nutzen Sie es für Ihre eigenen internen Dienste oder einen lokalen Testserver, damit nur der Traffic, der für die Außenwelt bestimmt ist, über die Adresse hinausgeht, für die Sie bezahlen.

