# Прокси в Playwright: настройка с аутентификацией, Python и Node | ProxyJam

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

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

Дайте 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](/ru/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-прокси](/ru/isp-proxies/), сравните тарифы на странице [цен](/ru/pricing/) и загружайте страницы без браузера по руководству для [Python requests](/ru/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, список хостов через запятую, к которым нужно обращаться напрямую. Используйте его для собственных внутренних сервисов или локального тестового сервера, чтобы через оплаченный адрес уходил только трафик, предназначенный для внешнего мира.

