Starten Sie mit einem Proxy und authentifizieren#
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();Verwenden Sie für jeden unabhängigen Workflow eine eindeutige Sitzungskennung, sofern das zugewiesene Gateway dies unterstützt. Bestätigen Sie die zulässigen Dauer- und Standortparameter in Ihren Verbindungsdetails. Ein Heimgerät kann die Verbindung vor Ablauf der angeforderten Dauer trennen; Eine Sticky-Sitzung ist keine Garantie für die gleiche IP-Adresse über mehrere Tage hinweg. Vergleichen Sie für eine feste Adresse ein dediziertes statisches Produkt.
Ein Proxy pro Browser#
Die Einstellung „--proxy-server“ auf Startebene gilt für das Standardrouting dieses Browsers. Current Puppeteer unterstützt auch ProxyServer in browser.createBrowserContext(), wobei die Anmeldeinformationen über page.authenticate() bereitgestellt werden. Verwenden Sie separate Kontexte für unterschiedliche Proxy-Einstellungen und separate Benutzerdatenverzeichnisse für persistente Profile. Überprüfen Sie den Exit in jedem Kontext.
Blockbilder, Schriftarten und Medien#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Kohärenz#
- Setz
Accept-Languageund die Zeitzone zum Land des Ausgangs:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})undpage.emulateTimezone(\"Europe/Berlin\"). - Deaktivieren Sie WebRTC-Lecks mit
--force-webrtc-ip-handling-policy=disable_non_proxied_udpIn der Start-Args. - Behalten Sie einen Browser pro Konto; Verwenden Sie das Benutzerdatenverzeichnis erneut, wenn das Konto wie ein zurückkehrendes Gerät aussehen soll.
Fehler, die Sie treffen werden#
| Symptom | Ursache | Fix |
|---|---|---|
| netto::ERR TUNNEL CONNECTION FAILED | Gateway hat CONNECT abgelehnt: Anmeldeinformationen, Parameter oder kein Exit | Reproduzieren mit cURL -v, um den Gateway-Code zu lesen |
| netto::ERR PROXY AUTH UNSUPPORTED / prompts | authenticate() nach der Navigation aufgerufen | Aufruf page.authenticate vor goto |
| Gleiche IP in jedem Browser | Gleiche Sitzungs-ID wiederverwendet | Verwenden Sie ein eindeutiges -sid- pro Browser oder lassen Sie es weg |
| Sehr langsame erste Last | Haushaltsausgang plus schwere Seite | Ressourcen blockieren; Timeout auf 45 s erhöhen |
Fragen, die Menschen stellen#
Kann Puppeteer SOCKS5 mit einem Passwort verwenden?
Chrome unterstützt keine SOCKS5-Authentifizierung. Verwenden Sie den HTTP-Proxy auf Port 9000 mit page.authenticate oder setzen Sie Ihre Server-IP auf die Whitelist und übergeben Sie --proxy-server=socks5://res.proxy-cyber.com:9001.