Перейти до вмісту
Гайды 2 хв читання 32 переглядів

Налаштування проксі Puppeteer для Node.js

Освоєння налаштування проксі Puppeteer для проектів Node.js. Цей посібник

Браузер
Налаштування проксі Puppeteer для Node.js

Щоб налаштувати проксі для Puppeteer у Node.js, налаштуйте аргументи запуску браузера за допомогою --proxy-server=<proxy_address>:<port>, щоб спрямувати весь трафік браузера через вказаний проксі. Це дозволяє маскувати IP-адресу, націлюватися на географічні регіони або обходити обмеження швидкості та блокування IP під час автоматизованої взаємодії з вебом.

Базова конфігурація проксі

Puppeteer контролює екземпляр Chromium, передаючи налаштування проксі безпосередньо через аргументи командного рядка. Основним аргументом є --proxy-server.

Зазначення проксі-сервера

Аргумент --proxy-server приймає адресу та порт проксі. Протокол (HTTP, HTTPS, SOCKS4, SOCKS5) може бути явно визначений; HTTP зазвичай передбачається, якщо його пропущено.

const puppeteer = require('puppeteer');

async function launchBrowserWithProxy(proxyAddress) {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=${proxyAddress}`,
      // Optional: For extreme anonymity, consider disabling WebRTC
      // '--disable-features=WebRTC' 
    ],
    headless: true, // or false for headful
  });
  const page = await browser.newPage();
  return { browser, page };
}

async function runBasicProxyExample() {
  const proxy = 'http://your-proxy-ip:port'; // Example: 'http://192.168.1.1:8080' or 'socks5://192.168.1.1:1080'
  let browser;
  try {
    const { browser: launchedBrowser, page } = await launchBrowserWithProxy(proxy);
    browser = launchedBrowser; // Assign to outer scope variable for finally block
    await page.goto('https://httpbin.org/ip'); // A service to show your external IP
    const ipInfo = await page.evaluate(() => document.body.textContent);
    console.log('External IP through proxy:', ipInfo);
  } catch (error) {
    console.error('Error launching browser with proxy:', error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

runBasicProxyExample();

Замініть your-proxy-ip:port на фактичну IP-адресу та порт вашого проксі-сервера. Переконайтеся, що префікс протоколу (наприклад, http://, socks5://) відповідає вашому типу проксі.

Автентифіковані проксі

Багато проксі-сервісів вимагають автентифікації. Puppeteer обробляє це за допомогою page.authenticate() після ініціалізації браузера та сторінки, надсилаючи заголовки HTTP Basic authentication до проксі.

Методи автентифікації проксі

  1. page.authenticate(): Рекомендовано для HTTP Basic authentication з Puppeteer.
  2. username:password@ip:port у --proxy-server: Хоча деякі інструменти підтримують цей формат безпосередньо, page.authenticate() є стандартним підходом Puppeteer для автентифікації.
const puppeteer = require('puppeteer');

async function launchBrowserWithAuthenticatedProxy(proxyAddress, username, password) {
  const browser = await puppeteer.launch({
    args: [`--proxy-server=${proxyAddress}`],
    headless: true,
  });
  const page = await browser.newPage();

  // Authenticate with the proxy
  await page.authenticate({ username, password });

  return { browser, page };
}

async function runAuthenticatedProxyExample() {
  const proxy = 'http://your-authenticated-proxy-ip:port';
  const proxyUsername = 'your_username';
  const proxyPassword = 'your_password';
  let browser;
  try {
    const { browser: launchedBrowser, page } = await launchBrowserWithAuthenticatedProxy(proxy, proxyUsername, proxyPassword);
    browser = launchedBrowser;
    await page.goto('https://httpbin.org/ip');
    const ipInfo = await page.evaluate(() => document.body.textContent);
    console.log('External IP through authenticated proxy:', ipInfo);
  } catch (error) {
    console.error('Error with authenticated proxy:', error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

runAuthenticatedProxyExample();

Стратегії ротації проксі

Для великомасштабного скрапінгу один проксі може призвести до обмеження швидкості. Ротація проксі передбачає перемикання між кількома проксі-серверами для розподілу запитів та підтримки анонімності.

Впровадження ротації проксі

  1. Ведення списку проксі: Зберігайте доступні проксі в масиві, включаючи дані автентифікації, якщо необхідно.
  2. Логіка вибору: Реалізуйте стратегію вибору проксі для кожного нового екземпляра браузера або запиту. Поширені стратегії: Round-Robin, випадковий вибір, зважена ротація.
const puppeteer = require('puppeteer');

// Example list of proxies, some with authentication details
const proxyConfigurations = [
  { address: 'http://proxy1.example.com:8080' },
  { address: 'http://auth-proxy1.example.com:8080', username: 'userA', password: 'passA' },
  { address: 'socks5://proxy3.
Оновлено: 03.03.2026
Назад до категорії

Читайте також

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.