Як використовувати автентифіковані проксі з Puppeteer
Chrome приймає хост і порт проксі як прапорець запуску, а Puppeteer відповідає на запит авторизації через page.authenticate.
Кроки
- Запустіть Chrome з --proxy-server=host:port
- Викличте page.authenticate з ім’ям користувача та паролем проксі
- Увімкніть перехоплення запитів, щоб блокувати зображення та шрифти
- Відкрийте один браузер на кожен session id для статичних 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; див. порти кожного продукту нижче.
Поради
- Блокування зображень часто зменшує трафік на сторінку більше ніж удвічі
- Статичний session id зберігає той самий IP для всього потоку перегляду
Поширені запитання
Чому Chrome все ще показує вікно авторизації?
page.authenticate має бути викликаний до першої навігації на цій сторінці.