Start med en proxy og autentiser#
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();Bruk en distinkt øktidentifikator for hver uavhengige arbeidsflyt, der den tildelte gatewayen støtter det. Bekreft tillatt varighet og plasseringsparametre i dine forbindelsesdetaljer. En hjemmeenhet kan koble fra før forespurt varighet; en fast økt er ikke en garanti for samme IP i dager. For en fast adresse, sammenlign et dedikert statisk produkt.
Én proxy per nettleser#
Oppstartsnivå -- proxy- server innstillingen gjelder for den nettleserens standard ruting. Nåværende Puppeteer støtter også proxyServer i browser. createBrowserContext (), med legitimasjon levert gjennom page. authenticate (). Bruk separate kontekster for forskjellige proxy- innstillinger og separate brukerdata kataloger for vedvarende profiler; verifisere utgangen inne hver sammenheng.
Blokkere bilder, fonter og medier#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Konsekvens#
- Sett
Accept-Languageog tidssone til landet utgangen er fra:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})ogpage.emulateTimezone(\"Europe/Berlin\"). - Deaktiver WebRTC-lekkasjer med
--force-webrtc-ip-handling-policy=disable_non_proxied_udpi oppstartsargumentene. - Behold én nettleser per konto. Bruk brukerdatakatalogen på nytt hvis kontoen skal se ut som en returnerende enhet.
Feil du vil møte#
| Symptom | Årsak | Rett opp |
|---|---|---|
| net:: ERR_ TUNNEL_ CONNECTION_ FAILED | Gateway nektet CONNECT: legitimasjon, parameter eller ingen utgang | Reproduser med cURL -v for å lese gateway-koden |
| net:: ERR_ PROXY_ AUTH_ UNSUPPORTED / forespørsler | authenticate () kalt etter navigasjon | Ring page.authenticate før goto |
| Samme IP i alle nettlesere | Samme økt- ID brukt på nytt | Bruk en egen -sid- for hver nettleser eller utelat den |
| Veldig treg første lasting | Husholdnings utgang pluss tung side | Blokkere ressurser; øk tidsavbrudd til 45 sekunder |
Spørsmål folk stiller#
Kan Puppeteer bruke SOCKS5 med et passord?
Bruk HTTP-proxyen på port 9000 med page.authenticate, eller hvitlist IP-adressen til tjeneren din og send --proxy-server=socks5://res.proxy-cyber.com:9001 for å få tilgang til nettstedet ditt fra en annen server.