0

Puppeteer использование прокси

В puppeteer использование прокси как и в Chrome осуществляется с помощью аргумента –proxy-server, который указывается при запуске браузера:

args: ['--proxy-server=server:port']

где server – доменное имя или ip-адрес прокси-сервера, port – порт подключения.

  1. Puppeteer использование прокси
  2. Протоколы прокси
  3. Авторизация

Puppeteer использование прокси

Приведем полный код, где мы продемонстрируем использование прокси в puppeteer. В данном примере мы подключимся к прокси-серверу 138.50.50.50:38886 и перейдем на сайт whoer.net, чтобы проверить, действительно ли puppeteer работает чрез прокси:

const puppeteer = require('puppeteer');              // подключаем puppeteer

(async () => {
const browser = await puppeteer.launch({            // запускаем браузер
        args: ['--proxy-server=138.50.50.50:38886]  // с прокси
});
const page = await browser.newPage();               // открываем новую вкладку
await page.goto('https://whoer.net');               // переходим на сайт
await browser.close()                               // закрываем браузер
})();

Вы увидите страницу с данными вашего ip-адреса и некоторой информацией о нём (как сделать скриншот в puppeteer читайте в данной статье) :

puppeteer использование прокси

В поле My IP будет указан ip-адрес, с которого осуществлено подключение к ресурсу и он должен (но не обязательно) быть таким же, который мы указывали в аргументе –proxy-server.

Протоколы прокси

Подключаться к прокси можно используя любой из протоколов: http, https, socks4 и socks5. Если для http и https указание протокола не требуется (как в примере выше), то для socks4 и socks5 это необходимо сделать явно:

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch({
        args: ['--proxy-server=socks5://server:port']
});
const page = await browser.newPage();

await page.goto('https://whoer.net');
await browser.close()
})();

Авторизация

Если прокси требует авторизации, то для протокола http возможно использовать page.authenticate(), где указывается логин и пароль:

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch({
        args: ['--proxy-server=server:port']
});
const page = await browser.newPage();
await page.authenticate({
    username: 'login',
    password: 'password',
});
await page.goto('https://whoer.net');
await browser.close()
})();