Konfiguracja proxy Puppeteer z uwierzytelnianiem
Puppeteer przyjmuje serwer proxy jako flagę uruchomienia, ale nazwa użytkownika i hasło trafiają gdzie indziej — przez page.authenticate(). Oto poprawny wzór dla uwierzytelnionych proxy s4m, z pełnym kodem Node.
Dlaczego sam flag nie wystarcza
Chromium — the browser Puppeteer drives — accepts a proxy through the --proxy-server command-line flag. The catch is that Chromium's flag format does not accept credentials inline: you cannot write --proxy-server=http://USER:PASS@host:3128 and expect it to work. When the proxy challenges for authentication, Chromium raises a native auth prompt that a headless browser cannot answer on its own.
Puppeteer's answer is page.authenticate({ username, password }). You pass the bare host and port to the launch flag, then hand the credentials to the page, and Puppeteer responds to the proxy's 407 Proxy Authentication Required challenge for you. With s4m that means launching with --proxy-server=http://proxy.s4m.online:3128 and authenticating with your USER:PASS. The HTTP endpoint (port 3128) is the right one here — Chromium's proxy flag speaks HTTP and SOCKS, but authenticated SOCKS5 with a browser is fiddly, so HTTP is the reliable choice. See the proxy overview and the proxy authentication guide.
Uwierzytelnione uruchomienie Puppeteer
Host proxy wchodzi w flagę uruchamiania; USER:PASS przechodzi przez page.authenticate(). Zastąp dane uwierzytelniające przed uruchomieniem.
// npm install puppeteer
const puppeteer = require("puppeteer");
const HOST = "proxy.s4m.online";
const PORT = 3128; // HTTP proxy endpoint
const USER = "USER";
const PASS = "PASS";
(async () => {
const browser = await puppeteer.launch({
headless: "new",
args: [
`--proxy-server=http://${HOST}:${PORT}`,
// credentials are NOT allowed here — see page.authenticate below
"--no-sandbox",
],
});
const page = await browser.newPage();
// This answers the proxy's 407 challenge:
await page.authenticate({ username: USER, password: PASS });
await page.goto("https://api.ipify.org?format=json", {
waitUntil: "networkidle0",
timeout: 30000,
});
console.log("Exit IP:", await page.evaluate(() => document.body.innerText));
await browser.close();
})();Rzeczy, które wprowadzają ludzi w błąd
Błędy, które zamieniają się w pustą stronę lub 407.
Dane logowania trafiają na stronę
Nigdy nie umieszczaj USER:PASS w --proxy-server; Chromium to ignoruje. Zawsze wywołuj page.authenticate() przed swoją pierwszą nawigacją, raz na stronę.
Użyj punktu końcowego HTTP
Uwierzytelniony SOCKS5 w przeglądarce jest niewiarygodny. Wskaźnik --proxy-server na http://proxy.s4m.online:3128 i pozwól page.authenticate zająć się logowaniem.
Zaloguj się przed przejściem do
Wywołaj page.authenticate() przed page.goto(), w przeciwnym razie pierwsze żądanie trafia do proxy bez danych uwierzytelniających i zwraca 407.
Jeden kontekst, jedna tożsamość
Każdy kontekst przeglądarki ma swoje własne uwierzytelnienie. Dla wielu tożsamości uruchom oddzielne konteksty zamiast ponownie uwierzytelniać wspólną stronę.
Blokady, odciski palców i uczciwość
Proxy ukrywa Twój adres IP; nie ukrywa, że automatyzujesz przeglądarkę. Nowoczesne systemy anty-botowe również analizują właściwości nawigatora, czas oraz odciski palców TLS. Jeśli cel oznaczy headless Chromium, sam proxy tego nie naprawi — możesz potrzebować realistycznych ustawień viewportu i User-Agent oraz ludzkiego tempa, a nawet wtedy niektóre strony są po prostu niedostępne dla automatyzacji.
Bądź szczery co do typu proxy: proxy s4m to datacenter, co jest idealne do testowania, monitorowania i umiarkowanie chronionych stron, ale mocno chronione cele mogą blokować zakresy datacenter. Kiedy potrzebujesz jednego stabilnego wyjścia do logowania lub białej listy, dodaj dedykowany osobisty adres IP. Wolisz Playwright? Wzór jest niemal identyczny — zobacz przewodnik po proxy Playwright. Zweryfikuj swoje wyjście za pomocą narzędzi i prototypuj przeciwko bezpłatnej liście proxy.
Pytania, odpowiedzi
Dlaczego moje żądanie Puppeteer zwraca 407?
Ponieważ serwer proxy wymaga uwierzytelnienia, a Ty na nie nie odpowiedziałeś. Wywołaj page.authenticate({ username, password }) przed swoim pierwszym page.goto() — dane uwierzytelniające w flagach --proxy-server są ignorowane przez Chromium.
Czy Puppeteer może używać proxy SOCKS5?
Flaga proxy Chromium może wskazywać na SOCKS, ale uwierzytelnione SOCKS5 w przeglądarce jest zawodna. Użyj punktu końcowego HTTP na porcie 3128 z page.authenticate() dla niezawodnej konfiguracji.
Czy muszę uwierzytelnić każdą stronę?
Tak — wywołaj page.authenticate() raz na stronę (lub na kontekst przeglądarki) przed nawigacją. Każdy kontekst ma swoje własne dane uwierzytelniające.
Czy proxy powstrzyma mnie przed byciem wykrytym jako bot?
Nie. Proxy zmienia tylko twój adres IP. Systemy anty-botowe również sprawdzają odciski palców przeglądarki i zachowanie, więc proxy jest konieczne, ale niewystarczające w obliczu agresywnej detekcji.
Uruchom bezgłowy Chrome za proxy
Uwierzytelnione proxy datacenter na proxy.s4m.online, gotowe do użycia z page.authenticate() Puppeteera. Płatność metrowa, z opcjonalnym dedykowanym adresem IP dla stabilnych logowań.
Ludzie znaleźli tę stronę, szukając
- konfiguracja proxy Puppeteer z uwierzytelnianiem
- jak skonfigurować adres IP
- adres IP samouczek
- adres IP
- wireguard samouczek
- pobierz uwierzytelnianie proxy
- działający konfiguracja proxy
- openvpn
- proxychains: jak łączyć proxy SOCKS5
- proxy do skrobania cena
- rotujące vs stałe sesje proxy
- czy proxy do skrobania jest bezpieczne
- jak unikać banów IP podczas scrapingu
Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.