WeProxy
Puppeteer

Автоматизация

Настройка WeProxy proxy для Puppeteer

В Puppeteer proxy задаётся флагом --proxy-server при запуске Chromium. Если нужны логин/пароль — вызывайте page.authenticate(). Только для авторизованной автоматизации и тестов; соблюдайте правила целевого сайта.

В Puppeteer подключение прокси задаётся параметром --proxy-server при запуске Chromium. Если нужны имя пользователя и пароль, после открытия страницы используется page.authenticate(). Это руководство предназначено только для авторизованной автоматизации, тестирования и сценариев доступа к данным; соблюдайте условия использования целевого сайта и политику robots.

Схема подключения WeProxy

Установите Puppeteer

npm install puppeteer

Храните данные WeProxy в переменных окружения:

export WEPROXY_HOST="PROXY_HOST"
export WEPROXY_PORT="PROXY_PORT"
export WEPROXY_USERNAME="PROXY_USERNAME"
export WEPROXY_PASSWORD="PROXY_PASSWORD"

Если вы используете PowerShell, вместо export используйте формат $env:ПЕРЕМЕННАЯ="значение".

Пример HTTP-прокси с аутентификацией

import puppeteer from 'puppeteer';

const {
  WEPROXY_HOST,
  WEPROXY_PORT,
  WEPROXY_USERNAME,
  WEPROXY_PASSWORD,
} = process.env;

const browser = await puppeteer.launch({
  headless: true,
  args: [
    `--proxy-server=http://${WEPROXY_HOST}:${WEPROXY_PORT}`,
  ],
});

try {
  const page = await browser.newPage();

  await page.authenticate({
    username: WEPROXY_USERNAME,
    password: WEPROXY_PASSWORD,
  });

  await page.goto('https://api.ipify.org?format=json', {
    waitUntil: 'domcontentloaded',
    timeout: 30_000,
  });

  console.log(await page.evaluate(() => document.body.innerText));
} finally {
  await browser.close();
}

Не добавляйте имя пользователя и пароль в параметр --proxy-server. Chromium надёжно не поддерживает такой формат, а секреты в командной строке могут отображаться в списке системных процессов.

Использование прокси с IP-белый списком

Если ваш продукт WeProxy поддерживает список разрешённых IP, авторизуйте текущий IP сервера в панели. В этом случае можно подключиться только с хостом и портом, без вызова page.authenticate().

Разный прокси для каждого браузера

--proxy-server применяется ко всему процессу браузера. Если нужны разные прокси, запускайте отдельный процесс puppeteer.launch() для каждого прокси. Нативно назначить разные прокси разным страницам в одном браузере нельзя.

Ошибки прокси Puppeteer

ERR_PROXY_CONNECTION_FAILED

Неверны хост, порт, протокол или статус пакета. Сначала проверьте прокси по тестовым данным в панели.

ERR_TUNNEL_CONNECTION_FAILED

Прокси может не установить туннель к HTTPS-цели, или аутентификация не завершена. Убедитесь, что page.authenticate() вызывается до page.goto().

407 Proxy Authentication Required

Неверны имя пользователя/пароль, либо продукт ожидает IP-аутентификацию. Проверьте метод проверки в панели.

Нет доступа к IPv6-цели

Если вы используете IPv6-продукт WeProxy, проверьте совместимость целевого сайта с IPv6. На целях только с IPv4 IPv6-прокси может не работать.

Советы по безопасной и стабильной работе

  • Если используете учётные данные через файл .env, добавьте его в .gitignore.
  • Задайте тайм-ауты и ограничения на повторные попытки.
  • Не отправляйте чрезмерное число запросов на целевой сервер.
  • Выбирайте модель сессии прокси — static, sticky или rotating — по своему рабочему процессу.
  • Убедитесь, что автоматизация соответствует правилам целевой платформы.

Источник

Другие интеграции

Смотрите другой инструмент?

Начать

Подключитесь к WeProxy сейчас

Создайте аккаунт, сразу используйте 100 МБ бесплатного residential-трафика и повторите шаги выше в своей среде.