Lansare cu proxy și autentificare#
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();Utilizaţi un identificator de sesiune distinct pentru fiecare flux de lucru independent, în cazul în care poarta atribuită o sprijină. Confirmaţi durata permisă şi parametrii de localizare în detaliile de conectare. Un dispozitiv rezidenţial se poate deconecta înainte de durata solicitată; o sesiune lipicioasă nu este o garanţie a aceluiaşi IP pentru zile. Pentru o adresă fixă, comparaţi un produs static dedicat.
Un proxy pe browser#
Setarea lansării --proxy-server se aplică acestui browser. Păpuşarul actual suportă de asemenea proxyServer în browser.creeazăBrowserContext(), cu acreditări furnizate prin pagina.autenticate(). Utilizaţi contexte separate pentru diferite setări proxy şi profiluri separate de date cu utilizatorul pentru profiluri persistente; verificaţi ieşirea în interiorul fiecărui context.
Blochează imaginile, fonturile și 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();
});Coerență#
- Stabilește
Accept-Languageși fusul orar al țării de ieșire:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})şipage.emulateTimezone(\"Europe/Berlin\"). - Dezactivează scurgerile WebRTC cu
--force-webrtc-ip-handling-policy=disable_non_proxied_udpîn args de lansare. - Păstrați un browser pe cont; refolosiți directorul său de date cu utilizatorul dacă contul ar trebui să arate ca un dispozitiv de întoarcere.
Erori pe care le veţi întâlni#
| Simptom | Cauza | Fixează |
|---|---|---|
| net::ERR TUNNEL CONNECŢIE AIFALED | Gateway a refuzat CONNECT: acreditări, parametri sau nicio ieșire | Reproduce cu cURL -v pentru a citi codul de poarta |
| net::ERR PROXY AUTH NSUPORTAT / prompts | Autentificare () chemată după navigare | Sună la pagina.Autenticate înainte de a merge la |
| Acelaşi IP în fiecare browser | Aceeaşi sesiune reutilizată | Utilizați un -sid distinct - pe browser sau omiteți-l |
| Încărcătura întâi foarte lentă | Ieșire de uz casnic plus pagina grea | Resursele bloc; timeout la 45 s |
Întrebări pe care oamenii le pun#
Poate Păpuşarul să folosească SOCKS5 cu o parolă?
Chrome nu suportă autentificarea SOCKS5. Utilizați proxy HTTP pe portul 9000 cu pagina.autenticate, sau Whitelist server IP și pass --proxy-server=socks5://res.proxy-cyber.com:9001.