Spuštění pomocí proxy serveru a ověření#
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();Pro každý nezávislý pracovní postup použijte odlišný identifikátor relace, pokud to přiřazená brána podporuje. V podrobnostech o připojení potvrďte povolenou dobu trvání a parametry umístění. Domácí zařízení se může odpojit před požadovaným časem trvání; stálá relace nezaručuje stejnou IP adresu po několik dní.
Jeden proxy server na prohlížeč#
Nastavení --proxy-server na úrovni spouštění se vztahuje k výchozímu směrování tohoto prohlížeče. Aktuální Puppeteer také podporuje proxyServer v browser.createBrowserContext(), přičemž pověření jsou poskytována prostřednictvím page.authenticate().Používejte samostatné kontexty pro různá nastavení proxy a samostatné adresáře uživatelských dat pro trvalé profily; ověřte ukončení uvnitř každého kontextu.
Blokování obrázků, písem a médií#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Konzistence#
- Set
Accept-Languagea časové pásmo země výstupu:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})apage.emulateTimezone(\"Europe/Berlin\"). - Zakázat úniky WebRTC pomocí
--force-webrtc-ip-handling-policy=disable_non_proxied_udpv argumentech spouštění. - Ponechte jeden prohlížeč na účet; znovu použijte jeho adresář uživatelských dat, pokud by měl účet vypadat jako vracející se zařízení.
Chyby, které potkáte#
| Symptom | Příčina | Fix |
|---|---|---|
| Chyba při pokusu o připojení k síti: | Brána odmítla CONNECT: přihlašovací údaje, parametr nebo žádný výstup | Reprodukujte pomocí cURL -v pro čtení kódu brány |
| net::ERR_PROXY_AUTH_UNSUPPORTED / chyba při ověřování proxy serveru | authenticate() volání po navigaci | Volání page.authenticate před goto |
| Stejná IP v každém prohlížeči | Stejné ID relace znovu použito | Použijte odlišný -sid- pro každý prohlížeč nebo jej vynechte |
| Velmi pomalé první zatížení | Domácnost exit plus těžké stránky | Blokování zdrojů; zvýšení časového limitu na 45 s |
Otázky, které lidé kladou#
Může Puppeteer používat SOCKS5 s heslem?
Použijte proxy server HTTP na portu 9000 s parametrem page.authenticate nebo zadejte IP adresu serveru do seznamu povolených a předejte parametr --proxy-server=socks5://res.proxy-cyber.com:9001.