# Proxy Playwright: Penyiapan dengan Autentikasi, Python dan Node | ProxyJam

Cara mengatur proxy Playwright per browser atau per context, dengan nama pengguna dan kata sandi lewat HTTP, dan mengapa SOCKS5 memerlukan whitelist IP. Kode teruji.

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

Berikan Playwright satu alamat ISP statis, saat launch atau untuk satu browser context. Contoh-contohnya dijalankan di Chromium, Firefox, dan WebKit terhadap proxy lokal sebelum diterbitkan.


Berikan proxy dengan server, username, dan password ke chromium.launch, atau ke browser.new_context untuk membatasinya pada satu context. Lewat HTTP, ketiga engine melakukan autentikasi dengan field tersebut. Lewat SOCKS5, tidak satu pun menerima nama pengguna dan kata sandi: Playwright menolak untuk launch. Masukkan IP Anda ke whitelist proxy dan berikan hanya server socks5://.


## Mengatur proxy di Playwright

1. **Salin host, port, nama pengguna, dan kata sandi** Dari Proxy Saya di dasbor atau dari pesanan di API. Setiap alamat datang dengan empat nilainya sendiri.
2. **Pilih cakupannya** Saat `launch`, seluruh browser memakai proxy. Pada `new_context`, hanya context itu yang memakainya, sehingga satu skrip bisa menjalankan beberapa context melalui alamat yang berbeda.
3. **Berikan objek proxy** `{"server": "http://HOST:PORT", "username": "USERNAME", "password": "PASSWORD"}`. Kredensial masuk ke field masing-masing, tidak pernah ke dalam URL server.
4. **Beralih ke SOCKS5? Hapus kredensialnya** Playwright tidak bisa login ke proxy SOCKS5, jadi alihkan pesanan ke SOCKS5, izinkan IP mesin Anda dengan panggilan whitelist di tab kode, dan sisakan hanya `socks5://HOST:PORT`, dengan port yang baru. Selama whitelist diatur, proxy hanya menerima alamat yang terdaftar dan nama pengguna serta kata sandi berhenti berfungsi untuk pesanan itu; mengirim daftar kosong mematikan whitelist dan login dengan kata sandi berfungsi lagi.
5. **Pastikan alamat keluarnya** Buka [Berapa IP Saya](/id/what-is-my-ip/) sekali di halaman browser atau context tersebut, sebelum run yang sebenarnya.

## Kode teruji untuk Playwright

Dijalankan dengan Playwright 1.64 untuk Python dan untuk Node. Contoh HTTP mengirim nama pengguna dan kata sandi dan memerlukan pesanan tanpa whitelist; contoh SOCKS5 mengandalkan whitelist dan mengharuskan proxy dialihkan ke SOCKS5 terlebih dahulu, yang memberi port baru. Ganti nilai berhuruf kapital dengan nilai dari pesanan Anda.

### Python

Proxy untuk seluruh 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 untuk seluruh 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();
})();
```

### Per context

Proxy untuk satu browser context.

```
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 dengan IP yang di-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()
```

### Panggilan whitelist

Tambahkan IP Anda ke whitelist proxy.

```
# 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"]}'
```


## Apa yang diterima setiap browser Playwright

|  | HTTP dengan kata sandi | SOCKS5 dengan kata sandi | SOCKS5, di-whitelist |
|---|---|---|---|
| Chromium | Berhasil | Ditolak saat launch | Berhasil |
| Firefox | Berhasil | Ditolak saat launch | Berhasil |
| WebKit | Berhasil | Ditolak saat launch | Berhasil |

Diuji pada 2026-10-22 dengan Playwright 1.64 untuk Python di macOS: setiap engine di-launch terhadap proxy lokal yang meminta kata sandi, dan terhadap proxy yang menerima klien yang di-whitelist. "Ditolak saat launch" berarti Playwright berhenti saat launch dengan error.


## Bagaimana alamat ini cocok dengan model Playwright

- **Satu context, satu alamat:** Setiap browser context bisa membawa IP statisnya sendiri dari pesanannya sendiri
- **Login HTTP:** Field username dan password, diterima oleh Chromium, Firefox, dan WebKit
- **Login SOCKS5:** Hanya dengan alamat IPv4 yang di-whitelist, diatur melalui API atau MCP
- **Stabilitas:** IP tetap sama di setiap run selama seluruh periode yang Anda bayar

## Apa yang salah dengan proxy Playwright

### Kredensial di string server

Playwright membaca nama pengguna dan kata sandi dari field masing-masing. Jika ditulis di URL server, keduanya sama sekali tidak dikirim: dalam pengujian kami, navigasi pertama menggantung sampai timeout, tanpa pesan yang menunjuk ke kredensial.

### Kata sandi SOCKS5

Setiap engine menolak autentikasi SOCKS5, dan error-nya muncul saat launch, sebelum halaman apa pun terbuka. Solusinya bukan library lain: masukkan IP tempat skrip Anda berjalan ke whitelist dan hapus kredensialnya.

### Mengira new_page akan mengganti alamat

Halaman berbagi proxy context-nya, dan context berbagi proxy browser kecuali diberi proxy sendiri. Untuk menjalankan dua alamat berdampingan, buat dua context, masing-masing dengan proxy-nya.

### Melewatkan cek alamat keluar

Salah ketik di port atau proxy yang masih diatur ke HTTP gagal dengan jelas, tetapi context yang dibuat tanpa objek proxy keluar langsung tanpa tanda apa pun. Muat halaman echo IP sekali untuk setiap context yang Anda konfigurasi.


## Pertanyaan tentang proxy di Playwright

### Bagaimana cara mengatur proxy dengan autentikasi di Playwright?

Berikan objek berisi server, username, dan password, ke launch atau ke new_context. Lewat proxy HTTP, Chromium, Firefox, dan WebKit semuanya mengirim kredensial itu saat proxy memintanya.

### Bisakah saya memakai proxy SOCKS5 dengan kata sandi di Playwright?

Tidak. Playwright berhenti saat launch dengan error yang menyatakan bahwa browser tidak mendukung autentikasi proxy SOCKS5, di ketiga engine. Masukkan IP tempat skrip Anda berjalan ke whitelist, lalu berikan hanya server socks5; whitelist kami berlaku lewat SOCKS5 maupun HTTP.

### Bagaimana cara memakai proxy berbeda untuk setiap halaman?

Berikan setiap browser context proxy-nya sendiri dan buka halaman di context tersebut. Halaman di dalam satu context selalu berbagi proxy-nya, jadi proxy per halaman berarti satu context per halaman.

### Apakah penyiapannya sama di Python dan di Node?

Objek yang sama dengan tiga field yang sama: Python menulisnya sebagai dictionary, Node sebagai object literal. Kedua contoh di halaman ini dijalankan dengan Playwright 1.64.

### Bisakah saya memakai proxy ini untuk scraping?

Menguji halaman Anda sendiri per wilayah, pemeriksaan kualitas, verifikasi iklan, riset harga dan pasar, pemantauan SEO, dan perlindungan merek berjalan tanpa peninjauan sebelumnya menurut kebijakan penggunaan yang dapat diterima kami. Ketersediaan publik saja tidak memberi izin untuk mengumpulkan data, data pribadi memerlukan dasar hukum yang dinyatakan, dan alamat ini tidak melewati CAPTCHA, deteksi bot, batas laju, atau pemblokiran; kebijakan tersebut melarang mencobanya.


Context dan alamat statis berpasangan satu lawan satu: satu context per pasar atau per pekerjaan, masing-masing mencapai target dari IP yang tidak berubah setiap kali skrip berjalan. Beli alamat sebanyak context yang Anda jalankan di [Proxy ISP](/id/isp-proxies/), bandingkan paket di [harga](/id/pricing/), dan ambil data tanpa browser melalui panduan [Python requests](/id/integrations/python-requests/).



## Sumber

- [Playwright documentation, Network: HTTP proxy](https://playwright.dev/python/docs/network#http-proxy): opsi proxy saat launch dan per context
- [Playwright API, BrowserType.launch](https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch): field server, bypass, username, dan password
- [RFC 1929, Username/Password Authentication for SOCKS V5](https://www.rfc-editor.org/rfc/rfc1929): login SOCKS5 yang tidak diimplementasikan browser




Playwright mengendalikan Chromium, Firefox, dan WebKit melalui satu API, dan proxy adalah bagian dari cara browser atau context dibuat. Hal ini memudahkan menjalankan beberapa alamat dalam satu skrip, dan di sini pula letak satu-satunya batas kerasnya: SOCKS5 dengan kata sandi.

## Proxy Playwright di Python

Contoh Python me-launch Chromium dengan proxy untuk seluruh browser; contoh per context membatasinya pada satu context. Mengganti engine cukup dengan mengubah chromium menjadi firefox atau webkit; objek proxy tetap sama.

## Autentikasi proxy Playwright

Ketiga engine menjawab 407 dari proxy dengan nama pengguna dan kata sandi dari objek proxy ketika proxy berbicara HTTP. Proxy SOCKS5 tidak mendapat jawaban seperti itu dari satu pun di antaranya, itulah sebabnya contoh SOCKS5 tidak membawa kredensial dan mengandalkan whitelist.

## Proxy Playwright per halaman, dan bypass

Proxy tidak bisa dipasang pada satu halaman. Unitnya adalah context: buat satu context per alamat dan buka di dalamnya halaman-halaman yang harus berbagi alamat itu. Context di Playwright murah, jadi skrip yang mengecek satu toko online dari tiga negara memegang tiga context, masing-masing dibuat dari pesanannya sendiri.

Objek proxy juga menerima field bypass, yaitu daftar host yang dipisahkan koma yang harus dicapai secara langsung. Pakai field ini untuk layanan internal Anda sendiri atau server pengujian lokal, sehingga hanya trafik yang memang ditujukan ke dunia luar yang keluar melalui alamat yang Anda bayar.

