Змінити мову
Українська 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.

Джерела