К содержимому

Настройка прокси в Puppeteer: --proxy-server, аутентификация и прокси для отдельных контекстов

Puppeteer управляет Chrome, поэтому прокси задаётся так, как этого ждёт Chrome, а логин и пароль передаются Puppeteer отдельно. В этом руководстве показаны аргумент запуска, шаг входа, опция для контекста и проверки.

Задайте прокси при запуске браузера

В документации Puppeteer сказано, что опция args в puppeteer.launch() передаёт браузеру дополнительные аргументы командной строки. Для прокси используется аргумент Chromium --proxy-server, описанный в документации Chromium по прокси. Его значение — адрес прокси; с префиксом http:// Chrome использует HTTP-прокси.

Задайте прокси при запуске браузера: пример

import puppeteer from 'puppeteer'

const browser = await puppeteer.launch({
  args: ['--proxy-server=http://proxy-host:port'],
})
const page = await browser.newPage()
await page.goto('https://ipinfo.io/json')
console.log(await page.evaluate(() => document.body.innerText))
await browser.close()

Замените proxy-host и port значениями из вашего списка прокси. Не вписывайте логин и пароль в --proxy-server; передайте их в page.authenticate, как показано дальше.

Логин и пароль через page.authenticate

В документации Puppeteer Page.authenticate() описан как способ передать учётные данные для HTTP-аутентификации; значение null её отключает. Там же отмечено, что для аутентификации в фоне включается перехват запросов, а это может повлиять на производительность. Вызывайте метод до первого перехода страницы.

Логин и пароль через page.authenticate: пример

const page = await browser.newPage()
await page.authenticate({ username: 'USERNAME', password: 'PASSWORD' })
await page.goto('https://ipinfo.io/json')

Учётные данные передаются отдельными полями, поэтому пароль здесь кодировать как URL не нужно.

Логин и пароль через page.authenticate, продолжение

В документации Chromium сказано, что HTTP-прокси в Chrome поддерживают те же схемы аутентификации, что и целевые серверы: Basic, Digest, Negotiate и NTLM. Если прокси отклонил вход, см. руководство по ошибке аутентификации.

Один прокси на контекст браузера

В справочнике Puppeteer API среди опций контекста браузера указан proxyServer: прокси-сервер с необязательным портом для всех запросов, а логин и пароль задаются в Page.authenticate. Другая опция из этого списка принимает хосты, которые не должны ходить через прокси. Так два контекста в одном браузере могут использовать два разных прокси.

Один прокси на контекст браузера: пример

const context = await browser.createBrowserContext({
  proxyServer: 'http://proxy-host:port',
})
const page = await context.newPage()
await page.authenticate({ username: 'USERNAME', password: 'PASSWORD' })
await page.goto('https://ipinfo.io/json')
await context.close()

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

HTTP или SOCKS5

В документации Chromium по прокси перечислены схемы HTTP, HTTPS, SOCKS4 и SOCKS5. Для SOCKS5 там сказано, что Chrome разрешает имена на стороне прокси и что для SOCKS5 в Chrome не поддерживается никаких методов аутентификации. На практике SOCKS5-прокси, которому нужны логин и пароль, нельзя использовать с Chrome через эту настройку. Если у прокси есть логин, выбирайте для Puppeteer HTTP-прокси. Если SOCKS5 нужен для другой программы, см. страницу SOCKS5-прокси.

Проверьте выход

Откройте https://ipinfo.io/json, как в примерах, и прочитайте поля country и org; как это делать, объясняет руководство по проверке местоположения прокси. Если в ответе виден ваш собственный адрес, прокси не применился: убедитесь, что аргумент стоит в вызове запуска или что страница создана из контекста с proxyServer.

Типичные ошибки

В документации Chromium сказано, что если прокси-сервер недоступен, запросы завершаются ошибкой ERR_PROXY_CONNECTION_FAILED. Проверьте хост, порт и схему, а полный список проверок есть в руководстве по ошибке подключения. Ошибка 407 или бесконечный запрос входа означает, что учётные данные не переданы в page.authenticate или неверны; скопируйте их заново. Чтобы выполнить ту же задачу в другом инструменте для браузера, настройка прокси в нём описана на странице Playwright, а обычные HTTP-клиенты разобраны в руководстве по прокси в Node.js. Следите, чтобы любая запускаемая вами автоматизация соответствовала правилам посещаемых сайтов.

Как это сделать с Proxy302

Для любой из этих настроек нужны только хост, порт, логин и пароль прокси Proxy302. Для Puppeteer выберите HTTP — порт 2222 на proxy.proxy302.com. Трафик ротационных резидентных прокси оплачивается за ГБ, страна выхода задаётся при создании прокси. Статический ISP IP фиксирован на весь срок аренды и не ротируется. В таблице — выходы в 7 странах при нашей последней почасовой проверке; зонд отправляет запрос к ChatGPT, это лишь пример целевого сайта. Подробности — на странице ротационных резидентных прокси и в руководстве по проверке местоположения прокси.

Измеренные выходы: ChatGPT, 7 стран

Измеренные выходы: ChatGPT, 7 стран
ПунктГородСеть (провайдер)ASN
СШАBaton Rouge, LouisianaVerizon BusinessAS6167
ВеликобританияBirkenhead, EnglandVirgin Media LimitedAS5089
ГерманияHannover, Lower Saxonyhtp GmbHAS13045
ЯпонияSaitama, SaitamaJCOM Co., Ltd.AS9824
СингапурYishun New Town, SingaporeSingtel Fibre BroadbandAS9506
БразилияSilvianópolis, Minas Geraisintertel telecomunicacao LTDAAS268801
ИндонезияДжакартаPT Mahawira Nusantara GrupAS151576

Почасовая проверка зонда Proxy302, 28 октября 2026, 14:56 UTC: по одному запросу к ChatGPT из каждой страны через динамический резидентный выход, по публичной точке входа Proxy302. Публично показаны только первые три октета IP. Один замер на страну, не среднее; следующие проверки будут отличаться.

Как это сделать с Proxy302: шаги

  1. Шаг 1

    Откройте страницу ротационных резидентных прокси, выберите линию, оставьте протокол HTTP или выберите SOCKS5 и нажмите «Проверить цену и создать».

  2. Шаг 2

    Откройте «Мои активы» (раздел консоли со всем, что вы купили) и скопируйте HOST, PORT, USERNAME и PASSWORD. На странице «Подключение» есть готовый пример с вашими данными.

  3. Шаг 3

    Введите данные в браузер или программу, которую вы настраиваете.

  4. Шаг 4

    Подтвердите выход запросом к https://ipinfo.io/json через прокси.

  5. Шаг 5

    Из материкового Китая сначала запустите вспомогательную программу на странице «Подключение» и держите её открытой, пока работает прокси.

Цены и ограничения

Бюджетная линия стоит $1,50 за ГБ, $1,35 за ГБ в пакете 100 ГБ и $1,20 за ГБ при 300 ГБ. Бесплатного пробного периода нет, а минимальная покупка составляет 1 ГБ. Набор доступных локаций меняется ежедневно.

Частые вопросы

Поддерживает ли Puppeteer SOCKS5 с логином и паролем?

Puppeteer запускает Chrome, а в документации Chromium сказано, что для SOCKS5 в Chrome не поддерживается никаких методов аутентификации. Если нужен логин, используйте HTTP-прокси.

Как использовать два прокси в одном браузере?

Создайте два контекста браузера и передайте разный proxyServer в каждый вызов createBrowserContext(), как описано в справочнике Puppeteer API.

Почему page.authenticate замедляет страницу?

В документации Puppeteer сказано, что для аутентификации в фоне включается перехват запросов, а это может повлиять на производительность.

Как исключить сайт из работы через прокси?

В справочнике Puppeteer API среди опций контекста есть опция со списком хостов, для которых прокси не используется, а в документации Chromium описан соответствующий ключ запуска.

Ссылки и источники

7
  1. Puppeteer API: LaunchOptions, args

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: args — дополнительные аргументы командной строки, передаваемые экземпляру браузера.

  2. Puppeteer API: Page.authenticate()

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: передаёт учётные данные для HTTP-аутентификации, null отключает её, в фоне включается перехват запросов.

  3. Puppeteer API: BrowserContextOptions

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: proxyServer (прокси с необязательным портом для всех запросов, учётные данные задаются в Page.authenticate) и список хостов, которые прокси не используют.

  4. Puppeteer API: Browser.createBrowserContext()

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: принимает BrowserContextOptions и возвращает BrowserContext.

  5. Документация Chromium: поддержка прокси в Chrome

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: --proxy-server, ключ исключения хостов, схемы HTTP, HTTPS, SOCKS4 и SOCKS5, схемы аутентификации для HTTP-прокси, отсутствие методов аутентификации для SOCKS5 в Chrome и ERR_PROXY_CONNECTION_FAILED.

  6. Факты о продуктах и прайс Proxy302

    Наблюдение за продуктом · Проверено:

    Файл фактов о продуктах сайта (значения сверены с консолью, бэкендом и прайсом 18-19 октября 2026): продукты, цены в долларах США (1 PTC = 1 USD), сроки аренды, протоколы и порты, число стран, лимиты количества, отсутствие бесплатного теста.

  7. Почасовая проверка связности Proxy302

    Наблюдение за продуктом · Проверено:

    Публичный JSON зонда proxy302.com/live/connectivity/chatgpt.json, прочитан 28 октября 2026, 14:56 UTC: по одному запросу на страну через динамический резидентный выход; город, ASN, сеть и время ответа.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.