Jak używać uwierzytelnionych proxy z Puppeteer
Chrome przyjmuje hosta i port proxy jako flagę uruchomieniową, a Puppeteer odpowiada na monit logowania za pomocą page.authenticate.
Kroki
- Uruchom Chrome z --proxy-server=host:port
- Wywołaj page.authenticate z nazwą użytkownika i hasłem proxy
- Włącz przechwytywanie żądań, aby blokować obrazy i czcionki
- Otwórz jedną przeglądarkę na identyfikator sesji dla stałych IP
Przykładowy kod
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();Zastąp USERNAME i PASSWORD loginem proxy ze strony Proxies w konsoli. Port 10000 to residential HTTP; zobacz porty każdego produktu poniżej.
Porady
- Blokowanie obrazów często zmniejsza ruch na stronę o więcej niż połowę
- Identyfikator sesji sticky utrzymuje to samo IP przez cały przepływ przeglądania
Częste pytania
Dlaczego Chrome nadal pokazuje okno logowania?
page.authenticate musi zostać uruchomione przed pierwszą nawigacją na tej stronie.