# Проксі в Playwright: налаштування з автентифікацією, Python і Node | ProxyJam

Як задати проксі в Playwright для браузера або для контексту, з логіном і паролем через HTTP, і чому для SOCKS5 потрібен білий список IP. Перевірений код.

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

Дайте Playwright одну статичну ISP-адресу під час запуску або для одного контексту браузера. Перед публікацією приклади перевірили в Chromium, Firefox і WebKit на локальному проксі.


Передайте proxy з полями server, username і password у chromium.launch або в browser.new_context, щоб обмежити його одним контекстом. Через HTTP усі три рушії проходять автентифікацію з цими полями. Через SOCKS5 жоден із них не приймає логін і пароль: Playwright відмовляється запускатися. Внесіть свій IP до білого списку проксі й укажіть лише сервер socks5://.


## Як задати проксі в Playwright

1. **Скопіюйте хост, порт, логін і пароль** З розділу «Мої проксі» в панелі керування або із замовлення в API. Кожна адреса має свої чотири значення.
2. **Оберіть охоплення** Під час `launch` проксі використовує весь браузер. У `new_context` його використовує лише цей контекст, тож один скрипт може запускати кілька контекстів через різні адреси.
3. **Передайте об'єкт проксі** `{"server": "http://HOST:PORT", "username": "USERNAME", "password": "PASSWORD"}`. Облікові дані йдуть у власні поля й ніколи не пишуться всередину URL сервера.
4. **Переходите на SOCKS5? Приберіть облікові дані** Playwright не вміє входити в SOCKS5-проксі, тому перемкніть замовлення на SOCKS5, пропустіть IP свого комп'ютера викликом білого списку з вкладок коду й залиште лише `socks5://HOST:PORT` з новим портом. Поки білий список задано, проксі пропускає лише адреси з нього, а логін і пароль для цього замовлення перестають працювати. Якщо надіслати порожній список, білий список вимикається і вхід за паролем знову працює.
5. **Перевірте вихідну адресу** Один раз відкрийте [What Is My IP](/uk/what-is-my-ip/) на сторінці цього браузера або контексту, до справжнього запуску.

## Перевірений код для Playwright

Запускалося на Playwright 1.64 для Python і для Node. HTTP-приклади надсилають логін і пароль, і їм потрібне замовлення без білого списку; приклад із SOCKS5 спирається на білий список, і для нього проксі спершу треба перемкнути на SOCKS5, після чого в нього буде новий порт. Замініть слова великими літерами значеннями зі свого замовлення.

### Python

Проксі для всього браузера, 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

Проксі для всього браузера, 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();
})();
```

### Для контексту

Проксі для одного контексту браузера.

```
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 з IP з білого списку.

```
# 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()
```

### Білий список

Додайте свій IP до білого списку проксі.

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


## Що приймає кожен браузер Playwright

|  | HTTP з паролем | SOCKS5 з паролем | SOCKS5, білий список |
|---|---|---|---|
| Chromium | Працює | Відмова під час запуску | Працює |
| Firefox | Працює | Відмова під час запуску | Працює |
| WebKit | Працює | Відмова під час запуску | Працює |

Перевірено 2026-10-22 на Playwright 1.64 для Python на macOS: кожен рушій запускали з локальним проксі, який вимагав пароль, і з проксі, який пропускав клієнта з білого списку. «Відмова під час запуску» означає, що Playwright зупинився під час запуску з помилкою.


## Як адреса лягає на модель Playwright

- **Один контекст, одна адреса:** Кожен контекст браузера може мати власний статичний IP із власного замовлення
- **Вхід через HTTP:** Поля username і password, їх приймають Chromium, Firefox і WebKit
- **Вхід через SOCKS5:** Лише за IPv4-адресою з білого списку, який задається через API або MCP
- **Стабільність:** IP не змінюється між запусками весь оплачений період

## Що йде не так із проксі в Playwright

### Облікові дані в рядку сервера

Playwright читає логін і пароль з їхніх власних полів. Якщо вписати їх в URL сервера, вони взагалі не надсилаються: у нашому тесті перша навігація висіла до тайм-ауту, і жодне повідомлення не вказувало на облікові дані.

### Пароль для SOCKS5

Усі рушії відмовляються від автентифікації в SOCKS5, і помилка приходить під час запуску, до відкриття будь-якої сторінки. Інша бібліотека тут не допоможе: внесіть до білого списку IP, з якого працює скрипт, і приберіть облікові дані.

### Очікування, що new_page змінить адресу

Сторінки використовують проксі свого контексту, а контексти використовують проксі браузера, якщо їм не задано власний. Щоб працювати з двома адресами паралельно, створіть два контексти, кожен зі своїм проксі.

### Пропущена перевірка вихідної адреси

Одрук у номері порту або проксі, досі налаштований на HTTP, одразу дають помітну помилку, а контекст, створений без об'єкта проксі, мовчки виходить напряму. Завантажте сторінку, яка показує IP, по одному разу в кожному налаштованому контексті.


## Питання про проксі в Playwright

### Як задати проксі з автентифікацією в Playwright?

Передайте об'єкт із полями server, username і password у launch або в new_context. Через HTTP-проксі Chromium, Firefox і WebKit надсилають ці облікові дані, коли проксі їх запитує.

### Чи можна використовувати SOCKS5-проксі з паролем у Playwright?

Ні. В усіх трьох рушіях Playwright зупиняється під час запуску з помилкою про те, що браузер не підтримує автентифікацію в SOCKS5-проксі. Внесіть до білого списку IP, з якого працює скрипт, і передайте лише сервер socks5; наш білий список діє і через SOCKS5, і через HTTP.

### Як використовувати окремий проксі для кожної сторінки?

Задайте кожному контексту браузера власний проксі й відкривайте сторінку в цьому контексті. Сторінки всередині одного контексту завжди використовують його проксі, тож проксі на сторінку означає один контекст на сторінку.

### Чи однакове налаштування в Python і в Node?

Той самий об'єкт із тими самими трьома полями: у Python він записується як словник, у Node як об'єктний літерал. Обидва приклади на цій сторінці запускалися на Playwright 1.64.

### Чи можна використовувати проксі для скрейпінгу?

Тестування власних сторінок за регіонами, перевірка якості, верифікація реклами, дослідження цін і ринку, SEO-моніторинг і захист бренду працюють без попередньої перевірки за нашою політикою прийнятного використання. Сама лише загальнодоступність не дає права збирати дані, а для персональних даних потрібна зазначена законна підстава. Адреса не проходить повз CAPTCHA, виявлення ботів, обмеження частоти запитів і блокування, і політика забороняє такі спроби.


Контексти й статичні адреси відповідають одне одному: контекст на ринок або на завдання, і кожен під час кожного запуску скрипта приходить до цілі з незмінного IP. Купіть стільки адрес, скільки у вас контекстів, на сторінці [ISP-проксі](/uk/isp-proxies/), порівняйте тарифи на сторінці [цін](/uk/pricing/) і завантажуйте сторінки без браузера за посібником для [Python requests](/uk/integrations/python-requests/).



## Джерела

- [Playwright documentation, Network: HTTP proxy](https://playwright.dev/python/docs/network#http-proxy): параметр проксі під час запуску й для контексту
- [Playwright API, BrowserType.launch](https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch): поля server, bypass, username і password
- [RFC 1929, Username/Password Authentication for SOCKS V5](https://www.rfc-editor.org/rfc/rfc1929): вхід у SOCKS5 за логіном і паролем, якого браузери не реалізують




Playwright керує Chromium, Firefox і WebKit через один API, а проксі входить у те, як створюється браузер або контекст. Тому в одному скрипті легко працювати з кількома адресами, і тому ж тут лежить його єдине жорстке обмеження: SOCKS5 з паролем.

## Проксі в Playwright на Python

Приклад на Python запускає Chromium із проксі для всього браузера; приклад для контексту натомість обмежує проксі одним контекстом. Щоб змінити рушій, досить замінити chromium на firefox або webkit; об'єкт проксі лишається тим самим.

## Автентифікація проксі в Playwright

Коли проксі працює через HTTP, три рушії відповідають на його 407 логіном і паролем з об'єкта проксі. SOCKS5-проксі такої відповіді не отримує від жодного з них, тому приклад із SOCKS5 не містить облікових даних і спирається на білий список.

## Проксі в Playwright для сторінки і bypass

Проксі не можна прив'язати до окремої сторінки. Одиниця тут контекст: створіть по контексту на кожну адресу й відкривайте в ньому сторінки, які мають використовувати цю адресу. Контексти в Playwright дешеві, тож скрипт, який перевіряє один магазин із трьох країн, тримає три контексти, кожен із власного замовлення.

Об'єкт проксі також приймає поле bypass, список хостів через кому, до яких треба звертатися напряму. Використовуйте його для власних внутрішніх сервісів або локального тестового сервера, щоб через оплачену адресу виходив лише трафік, призначений для зовнішнього світу.

