Zagon s proxyjem in preverjanje pristnosti#
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();Uporabite ločen identifikator seje za vsak neodvisen potek dela, kjer ga dodeljeni prehod podpira. Potrdite dovoljeno trajanje in parametre lokacije v podrobnostih povezave. Domača naprava lahko prekine povezavo pred zahtevanim trajanjem; lepljiva seja ni zagotovilo za isti IP več dni. Za fiksni naslov primerjajte namenski statični izdelek.
En proxy na brskalnik#
Nastavitev --proxy-server na začetni ravni se uporablja za privzeto usmerjanje tega brskalnika. Trenutni Puppeteer podpira tudi proxyServer v browser.createBrowserContext(), s poverilnicami, ki jih posreduje page.authenticate(). Uporabite ločene kontekste za različne nastavitve proxyja in ločene direktorije uporabniških podatkov za trajne profile; preverite izhod znotraj vsakega konteksta.
Blokiranje slik, pisav in predstavnosti#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Doslednost#
- Nastavitev
Accept-Languagein časovni pas za državo izhoda:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})inpage.emulateTimezone(\"Europe/Berlin\"). - Onemogočite uhajanje WebRTC z
--force-webrtc-ip-handling-policy=disable_non_proxied_udpV začetnih argumentih. - Na račun uporabite en brskalnik; če je račun videti kot naprava, ki se vrača, znova uporabite imenik z uporabniškimi podatki.
Napake, ki jih boste srečali#
| Simptomi | Vzrok | Popravi |
|---|---|---|
| ERR_CONNECTION_FAILED | Prehod je zavrnil CONNECT: poverilnice, parameter ali noben izhod | Reproduciraj s cURL -v za branje kode prehoda |
| net::ERR_PROXY_AUTH_UNSUPPORTED / pozivi za odstranitev | authenticate() poklicano po navigaciji | Pokliči page.authenticate preden greš naprej |
| Isti IP v vsakem brskalniku | Ponovno uporabljen isti ID seje | Uporabite ločen -sid- za vsak brskalnik ali ga izpustite |
| Zelo počasen prvi naklad | Gospodinjski izhod plus težka stran | Blokiranje virov; povečanje časovne omejitve na 45 s |
Vprašanja, ki jih ljudje postavljajo#
Ali lahko Puppeteer uporablja SOCKS5 z geslom?
Uporabite proxy HTTP na vratih 9000 s page.authenticate ali dodajte IP strežnika na seznam dovoljenih naslovov in posredujte --proxy-server=socks5://res.proxy-cyber.com:9001, da bo lahko Google Chrome preveril pristnost vašega strežnika.