Come Usare Proxy Autenticati con Puppeteer
Chrome accetta host e porta del proxy come flag di avvio, e Puppeteer risponde al prompt di login con page.authenticate.
Passaggi
- Avvia Chrome con --proxy-server=host:port
- Chiama page.authenticate con username e password del proxy
- Attiva l'intercettazione delle richieste per bloccare immagini e font
- Apri un browser per session id per IP fissi
Codice di esempio
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();Sostituisci USERNAME e PASSWORD con le credenziali del proxy dalla pagina Proxies della console. La porta 10000 è HTTP residenziale; vedi le porte di ogni prodotto qui sotto.
Consigli
- Bloccare le immagini spesso riduce il traffico per pagina di oltre la metà
- Un session id fisso mantiene lo stesso IP per un intero flusso di navigazione
Domande comuni
Perché Chrome mostra ancora un popup di login?
page.authenticate deve essere eseguito prima della prima navigazione di quella pagina.