Как использовать аутентифицированные прокси с Puppeteer
Chrome принимает хост и порт прокси как флаг запуска, а Puppeteer отвечает на запрос входа через page.authenticate.
Шаги
- Запустите Chrome с --proxy-server=host:port
- Вызовите page.authenticate с вашим именем пользователя и паролем прокси
- Включите перехват запросов, чтобы блокировать изображения и шрифты
- Открывайте один браузер на session id для sticky IP
Пример кода
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({ args: ["--proxy-server=gw.gbproxies.cc:10000"] });
const page = await browser.newPage();
await page.authenticate({ username: "USERNAME-cc-fr-sid-shop1-ttl-30", password: "PASSWORD" });
await page.setRequestInterception(true);
page.on("request", (r) => (["image", "font", "media"].includes(r.resourceType()) ? r.abort() : r.continue()));
await page.goto("https://api.ipify.org");
console.log(await page.content());
await browser.close();Замените USERNAME и PASSWORD на логин прокси со страницы Proxies в консоли. Порт 10000, резидентные HTTP; см. порты каждого продукта ниже.
Советы
- Блокировка изображений часто сокращает трафик на странице более чем вдвое
- Sticky session id сохраняет один IP для всего потока просмотра
Частые вопросы
Почему Chrome все еще показывает окно входа?
page.authenticate должен запускаться до первой навигации на странице.