Starta med en proxy och autentisera#
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();Använd en separat sessionsidentifierare för varje oberoende arbetsflöde, där den tilldelade gatewayen stöder det. Bekräfta tillåtna parametrar för varaktighet och plats i anslutningsinformationen. En bostadsenhet kan kopplas bort före begärd varaktighet; en fast session är inte en garanti för samma IP-adress under flera dagar. För en fast adress jämför med en dedikerad statisk produkt.
En proxy per webbläsare#
Startnivåinställningen --proxy-server gäller för den webbläsarens standardvägledning. Nuvarande Puppeteer stöder också proxyServer i browser.createBrowserContext(), med referenser som tillhandahålls genom page.authenticate().Använd separata sammanhang för olika proxyinställningar och separata användardatakataloger för beständiga profiler; verifiera utgången inom varje sammanhang.
Blockera bilder, typsnitt och 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();
});Konsistens#
- Set
Accept-Languageoch tidszonen till utgångslandet:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})ochpage.emulateTimezone(\"Europe/Berlin\"). - Inaktivera WebRTC-läckor med
--force-webrtc-ip-handling-policy=disable_non_proxied_udpi lanseringsargumenten. - Behåll en webbläsare per konto. Återanvänd dess användardatakatalog om kontot ska se ut som en återkommande enhet.
Fel du kommer att möta#
| Symtom | Orsak | Fix |
|---|---|---|
| Felmeddelande: ERR_CONNECTION_FAILED | Gatewayn vägrade CONNECT: autentiseringsuppgifter, parameter eller ingen utgång | Reproducera med cURL -v för att läsa gateway-koden |
| net::ERR_PROXY_AUTH_UNSUPPORTED / felmeddelanden | authenticate() kallas efter navigering | Anropa page.authenticate innan goto |
| Samma IP i alla webbläsare | Samma sessions-id återanvänds | Använd en distinkt -sid- per webbläsare eller utelämna den |
| Mycket långsam första belastning | Hushållsutgång plus tung sida | Blockera resurser; höj timeout till 45 s |
Frågor som folk ställer#
Kan Puppeteer använda SOCKS5 med ett lösenord?
Använd HTTP-proxyn på port 9000 med page.authenticate eller vitlista serverns IP-adress och skicka --proxy-server=socks5://res.proxy-cyber.com:9001, så att du kan använda SOCKS5 för att komma åt webbplatser som inte stöds av SOCKS.