Как установить прокси-сервер в моем запросе Chrome без головы с помощью Node JS Puppeteer
/Я запускаю запрос на поиск без головы в Chrome и мне нужен доступ к прокси-серверу/
const puppeteer = require('puppeteer');
var url="https://www.google.com/search?q=";
var keyword="hotels";
var urls;
var desktopUserAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36";
const response=[];
var i=0;
var userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36";
(async () => {
const browser = await puppeteer.launch({headless: false });
const page = await browser.newPage();
urls=url+keyword;
page.setUserAgent(userAgent);
response[i]=await page.goto(urls);
console.log(await browser.version());
})();
// Мне нужен доступ к прокси-серверу для поиска в Google
1 ответ
Вы можете передать прокси, как это в аргументе,
const options = {
headless: false,
args: [
`--proxy-server=${proxyIP:proxyPORT}`,
`--ignore-certificate-errors`
]
};
const browser = await puppeteer.launch(options);
Если вы хотите прокси-аутентификацию, вы можете использовать следующее в вашем объекте страницы,
await page.authenticate(user, pass);
Я сделал модуль, который это делает. Это называется кукловод-страница-прокси. Он поддерживает настройку прокси для всей страницы или, если хотите, он может установить другой прокси для каждого запроса.
Сначала установите его:
npm i puppeteer-page-proxy
Тогда потребуйте это:
const useProxy = require('puppeteer-page-proxy');
Пользоваться им легко; Установите прокси для всей страницы:
await useProxy(page, 'http://127.0.0.1:8000');
Если вам нужен другой прокси для каждого запроса, вы можете просто сделать это:
await page.setRequestInterception(true);
page.on('request', req => {
useProxy(req, 'socks5://127.0.0.1:9000');
});
Затем, если вы хотите быть уверены, что IP-адрес вашей страницы изменился, вы можете найти его;
const data = await useProxy.lookup(page);
console.log(data.ip);
Он поддерживает прокси http, https, socks4 и socks5, а также поддерживает аутентификацию, если это необходимо:
const proxy = 'http://login:pass@127.0.0.1:8000'
Репозиторий:https://github.com/Cuadrix/puppeteer-page-proxy