Start met een proxy en authenticeer#
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
headless: true,
args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });
await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Gebruik een aparte sessie-identificatie voor elke onafhankelijke workflow, waar de toegewezen gateway het ondersteunt. Bevestig de toegestane duur en locatieparameters in uw verbindingsdetails. Een residentieel apparaat kan voor de gewenste duur worden verbroken; een plakkerige sessie is geen garantie van hetzelfde IP voor dagen. Voor een vast adres, vergelijk een specifiek statisch product.
Eén proxy per browser#
De start-level --proxy-server instelling is van toepassing op die browser. De huidige Puppeteer ondersteunt ook proxyServer in browser.createBrowserContext(), met referenties geleverd via pagina.authenticate(). Gebruik aparte contexten voor verschillende proxy-instellingen en aparte user-data directories voor persistente profielen; verifieer de exit binnen elke context.
Blokkeer afbeeldingen, lettertypen en media#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Consistentie#
- Instellen
Accept-Languageen de tijdzone naar het land van uitgang:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})enpage.emulateTimezone(\"Europe/Berlin\"). - Schakel WebRTC-lekken uit met
--force-webrtc-ip-handling-policy=disable_non_proxied_udpin de lanceringsargs. - Houd één browser per account; hergebruik de gebruikersdatamap als het account eruit zou moeten zien als een terugkerend apparaat.
Fouten die je tegenkomt#
| Symptoom | Oorzaak | Repareren |
|---|---|---|
| net::ERR_TUNNEL_CONNECTION_FAILED | Gateway weigerde de CONNECT: referenties, parameter of geen uitgang | Met cURL -v produceren om de gateway code te lezen |
| netto::ERR PROXY AUTH UNSUPPORTED / prompts | authenticate() aangeroepen na navigatie | Roep page.authenticate op voordat u naar goto gaat |
| Hetzelfde IP-adres in elke browser | Dezelfde sessie-ID hergebruikt | Gebruik een aparte -sid- per browser of laat het weg |
| Zeer trage eerste lading | Huishoudelijke uitgang plus zware pagina | Blokkeer bronnen; verhoog de time-out naar 45 s |
Vragen die mensen stellen#
Kan Puppeteer SOCKS5 gebruiken met een wachtwoord?
Chrome ondersteunt geen SOCKS5-authenticatie. Gebruik de HTTP-proxy op poort 9000 met pagina.authenticate, of witlijst uw server IP en pass --proxy-server=socks5://res.proxy-cyber.com:9001.