Uruchom z proxy i uwierzytelniaj#
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();Użyj odrębnego identyfikatora sesji dla każdego niezależnego przepływu pracy, jeśli obsługuje go przypisana brama. Potwierdź dozwolony czas trwania i parametry lokalizacji w szczegółach połączenia. Urządzenie domowe może odłączyć się przed żądanym czasem trwania; sesja lepka nie gwarantuje tego samego adresu IP przez kilka dni. Aby uzyskać stały adres, porównaj dedykowany produkt statyczny.
Jeden proxy na przeglądarkę#
Ustawienie --proxy-server na poziomie uruchamiania dotyczy domyślnego routingu tej przeglądarki. Obecny Puppeteer obsługuje także proxyServer w przeglądarce.createBrowserContext(), z poświadczeniami dostarczanymi poprzez page.authenticate(). Używaj oddzielnych kontekstów dla różnych ustawień proxy i oddzielnych katalogów danych użytkownika dla trwałych profili; sprawdź wyjście w każdym kontekście.
Blokowanie obrazów, czcionek i mediów#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Spójność#
- Ustaw
Accept-Languageoraz strefa czasowa do kraju wyjścia:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})orazpage.emulateTimezone(\"Europe/Berlin\"). - Wyłącz przecieki WebRTC z
--force-webrtc-ip-handling-policy=disable_non_proxied_udpna dyskach startowych. - Zachowaj jedną przeglądarkę na konto; ponownie wykorzystaj swój katalog danych użytkownika, jeśli konto powinno wyglądać jak urządzenie powracające.
Błędy, które spotkasz#
| Symptom | Przyczyna | Napraw |
|---|---|---|
| netto:: ERR _ TUNNEL _ CONNECTION _ FAIled | Brama odmówiła CONNECT: dane uwierzytelniające, parametr lub brak wyjścia | Odtworzyć za pomocą cURL -v, aby odczytać kod bramy |
| net:: ERR _ PROXY _ AUTH _ NIEZALEŻNE / PISEMNE | uwierzytelnianie () wywołane po nawigacji | Zadzwoń do strony. Phentivate przed goto |
| Ten sam adres IP w każdej przeglądarce | Ten sam identyfikator sesji ponownie użyty | Użyj oddzielnego -sid- na przeglądarkę lub pomiń go |
| Bardzo powoli pierwszy ładunek | Wyjście gospodarstwa domowego plus ciężka strona | Zablokuj zasoby; wydłuż czas do 45 s |
Pytania, które ludzie zadają#
Czy Puppeteer może używać SOCKS5 z hasłem?
Chrome nie obsługuje uwierzytelniania SOCKS5. Użyj serwera proxy HTTP na porcie 9000 z page.authenticate lub umieść adres IP swojego serwera na białej liście i podaj --proxy-server=socks5://res.proxy-cyber.com:9001.