В puppeteer использование прокси как и в Chrome осуществляется с помощью аргумента –proxy-server, который указывается при запуске браузера:
args: ['--proxy-server=server:port']
где server – доменное имя или ip-адрес прокси-сервера, port – порт подключения.
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 читайте в данной статье) :
В поле 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()
})();
args: [‘–proxy-server=138.50.50.50:38886] -ошибка нет кавычки
Исправил, спасибо!