Сменить язык
Русский English Deutsch Español Français Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Меню
Цены
Прокси
ТИПЫ ПРОКСИ
ПО ЛОКАЦИЯМ77 локации
Решения
Ресурсы

Как использовать прокси в Playwright

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

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

Playwright управляет Chromium, Firefox и WebKit через один API, а прокси входит в то, как создаётся браузер или контекст. Поэтому в одном скрипте легко работать с несколькими адресами, и поэтому же здесь находится его единственное жёсткое ограничение: SOCKS5 с паролем.

Прокси в Playwright на Python

Пример на Python запускает Chromium с прокси для всего браузера; пример для контекста вместо этого ограничивает прокси одним контекстом. Чтобы сменить движок, достаточно заменить chromium на firefox или webkit; объект прокси остаётся прежним.

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

Когда прокси работает по HTTP, три движка отвечают на его 407 логином и паролем из объекта прокси. SOCKS5-прокси такого ответа не получает ни от одного из них, поэтому пример с SOCKS5 не содержит учётных данных и опирается на белый список.

Прокси в Playwright для страницы и bypass

Прокси нельзя привязать к отдельной странице. Единицей здесь служит контекст: создайте по контексту на каждый адрес и открывайте внутри него страницы, которые должны использовать этот адрес. Контексты в Playwright дешёвые, поэтому скрипт, который проверяет один магазин из трёх стран, держит три контекста, каждый из собственного заказа.

Объект прокси также принимает поле bypass, список хостов через запятую, к которым нужно обращаться напрямую. Используйте его для собственных внутренних сервисов или локального тестового сервера, чтобы через оплаченный адрес уходил только трафик, предназначенный для внешнего мира.

Как задать прокси в 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 на странице этого браузера или контекста, до настоящего запуска.

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

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

Полная документация API

Что принимает каждый браузер Playwright

Проверено 2026-10-22 на Playwright 1.64 для Python на macOS: каждый движок запускали с локальным прокси, который требовал пароль, и с прокси, который пропускал клиента из белого списка. «Отказ при запуске» значит, что Playwright остановился при запуске с ошибкой.
HTTP с паролемSOCKS5 с паролемSOCKS5, белый список
ChromiumРаботаетОтказ при запускеРаботает
FirefoxРаботаетОтказ при запускеРаботает
WebKitРаботаетОтказ при запускеРаботает

Что идёт не так с прокси в Playwright

Учётные данные в строке сервера

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

Пароль для SOCKS5

Все движки отвергают аутентификацию в SOCKS5, и ошибка приходит при запуске, до открытия какой-либо страницы. Другая библиотека тут не поможет: внесите в белый список IP, с которого работает скрипт, и уберите учётные данные.

Ожидание, что new_page сменит адрес

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

Пропущенная проверка выходного адреса

Опечатка в порте или прокси, всё ещё настроенный на HTTP, сразу дают заметную ошибку, а контекст, созданный без объекта прокси, молча выходит напрямую. Загрузите страницу, которая показывает IP, по одному разу в каждом настроенном контексте.

Как адрес ложится на модель Playwright

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

Что дальше после Playwright

Вопросы о прокси в Playwright

Как задать прокси с аутентификацией в Playwright?

Передайте объект с полями server, username и password в launch или в new_context. Через HTTP-прокси Chromium, Firefox и WebKit отправляют эти учётные данные, когда прокси их запрашивает.

Можно ли использовать SOCKS5-прокси с паролем в Playwright?

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

Как использовать отдельный прокси для каждой страницы?

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

Одинакова ли настройка в Python и в Node?

Тот же объект с теми же тремя полями: в Python он записывается как словарь, в Node как объектный литерал. Оба примера на этой странице запускались на Playwright 1.64.

Можно ли использовать прокси для скрапинга?

Тестирование собственных страниц по регионам, проверка качества, верификация рекламы, исследование цен и рынка, SEO-мониторинг и защита бренда работают без предварительной проверки по нашей политике допустимого использования. Сама по себе общедоступность не даёт права собирать данные, для персональных данных нужно указанное законное основание, а адрес не помогает пройти CAPTCHA, обнаружение ботов, ограничения частоты запросов и блокировки; политика запрещает такие попытки. Политика допустимого использования

Контексты и статические адреса соотносятся один к одному: контекст на рынок или на задачу, и каждый при каждом запуске скрипта приходит к цели с неизменного IP. Купите столько адресов, сколько у вас контекстов, на странице ISP-прокси, сравните тарифы на странице цен и загружайте страницы без браузера по руководству для Python requests.

Источники