# Uwierzytelnianie proxy Puppeteer z proxy rezydencjalnymi i mobilnymi proxy 4G

> Uwierzytelnianie proxy w Puppeteer: --proxy-server plus page.authenticate(), jedna sesja na kontekst przeglądarki, przechwytywanie żądań w celu oszczędzania transferu.

- URL: https://crawlrelay.com/pl/docs/puppeteer/
- Ostatnia aktualizacja: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Chrome pobiera adres proxy z flagi uruchomieniowej, a dane uwierzytelniające z page.authenticate(). Używaj jednego kontekstu przeglądarki na sesję, żeby dane uwierzytelniające nigdy nie przeciekały między zadaniami.

**Szybka odpowiedź — Jak używać uwierzytelnionego proxy w Puppeteer?**

Uruchom Chrome z `--proxy-server=http://gw.crawlrelay.com:7777`, potem wywołaj `page.authenticate({ username, password })` przed pierwszym `goto`. Chrome ignoruje dane uwierzytelniające wpisane we flagę. **CrawlRelay** proxy rezydencjalne odczytują kraj i trwałą sesję z nazwy użytkownika, więc każda strona lub kontekst może mieć własne IP wyjściowe. Transfer kosztuje 0,50 USD/GB od 50 GB. Płatność w crypto, bez KYC.

## Szybka konfiguracja Puppeteer

| Atrybut | Wartość |
| --- | --- |
| Adres proxy | `--proxy-server=http://gw.crawlrelay.com:7777` w `args` lub `proxyServer` na kontekst przeglądarki |
| Dane uwierzytelniające | `await page.authenticate({ username, password })` przed nawigacją |
| Osobne sesje | `browser.createBrowserContext({ proxyServer })`: jeden kontekst na sesję |
| SOCKS5 | Nie działa z uwierzytelnianiem w Chrome: używaj portu HTTP |
| Oszczędzanie transferu | `page.setRequestInterception(true)` i blokuj obrazy, czcionki oraz multimedia |

## Jak skonfigurować pojedyncze uwierzytelnione proxy?

To jest minimalny wzorzec. Blok `try … finally` zamyka Chrome nawet gdy nawigacja się nie powiedzie, co ma znaczenie na serwerach z porzuconymi procesami przeglądarek.

*Node.js (moduł ES): jedna przeglądarka, jedno IP wyjściowe*

```javascript
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=http://gw.crawlrelay.com:7777"],
});
try {
  const page = await browser.newPage();
  await page.authenticate({ username: "USERNAME-country-us", password: "PASSWORD" });
  await page.setRequestInterception(true);
  page.on("request", (req) =>
    ["image", "font", "media"].includes(req.resourceType()) ? req.abort() : req.continue()
  );
  const res = await page.goto("https://example.com/", { waitUntil: "domcontentloaded", timeout: 60000 });
  console.log(res.status(), await page.title());
} finally {
  await browser.close();
}
```

## Jak uruchomić kilka sesji lub krajów w jednej przeglądarce?

Utwórz jeden kontekst przeglądarki na sesję. Kontekst to izolowany profil z własnymi ciasteczkami, cache i stanem sieci, więc dane uwierzytelniające z jednego kontekstu nie przeciekają do innego. Nadaj każdemu kontekstowi nazwę użytkownika z własnym krajem lub ID sesji.

*Node.js: jeden kontekst na trwałą sesję*

```javascript
import puppeteer from "puppeteer";
import { randomUUID } from "node:crypto";

const GATEWAY = "http://gw.crawlrelay.com:7777";
const browser = await puppeteer.launch();

async function visit(country, url) {
  const session = randomUUID().replaceAll("-", "").slice(0, 10);
  const context = await browser.createBrowserContext({ proxyServer: GATEWAY });
  try {
    const page = await context.newPage();
    await page.authenticate({
      username: `USERNAME-country-${country}-session-${session}-ttl-20`,
      password: "PASSWORD",
    });
    await page.goto(url, { waitUntil: "domcontentloaded", timeout: 60000 });
    return { country, session, ip: await page.evaluate(() => document.body.innerText.trim()) };
  } finally {
    await context.close();
  }
}

try {
  const results = await Promise.all([
    visit("us", "https://api.ipify.org"),
    visit("gb", "https://api.ipify.org"),
  ]);
  console.table(results);
} finally {
  await browser.close();
}
```

## Dlaczego Puppeteer pokazuje błąd 407 lub ERR_TUNNEL_CONNECTION_FAILED?

Bo Chrome nie wysłał danych uwierzytelniających lub wysłał błędne. Sprawdź trzy rzeczy:

1. `page.authenticate()` wywoływany jest **przed** pierwszym `goto` na tej stronie.
2. Flaga `--proxy-server` lub `proxyServer` zawiera tylko schemat, host i port, bez części `user:pass@`.
3. Nazwa użytkownika nie ma literówek w części docelowej: przetestuj ją najpierw curl, jak pokazano na stronie [407](https://crawlrelay.com/pl/docs/errors/407-proxy-authentication-required/).

Jeśli curl działa z tym samym użytkownikiem i hasłem, a Puppeteer dalej nie, przeczytaj [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/pl/docs/errors/err-tunnel-connection-failed/).

## Ile transferu zużywa strona w Puppeteer?

Wszystko co Chrome pobiera, jest rozliczane: HTML, skrypty, style, obrazy, czcionki oraz wywołania API z strony. HTTP Archive Web Almanac 2025 zmierzył medianę wielkości strony na 2 164 KB na mobilnych oraz 2 412 KB na desktopie. Blokowanie obrazów, czcionek i multimediów przez przechwytywanie żądań zwykle redukuje to do kilkuset kilobajtów, a zwracanie z cache powtarzających się skryptów obniża dalej transfer. Używaj [rotujących mobilnych proxy 4G](https://crawlrelay.com/pl/mobile-proxies/) tylko tam gdzie potrzebne: transfer mobilny kosztuje 1,50 USD/GB od 5 GB, proxy rezydencjalne 0,50 USD/GB od 50 GB.

## Puppeteer i proxy: pytania

### Czy mogę umieścić nazwę użytkownika i hasło w --proxy-server?

Nie. Chrome ignoruje dane uwierzytelniające we fladze `--proxy-server`, a pierwsze żądanie HTTPS kończy się błędem 407 ukrytym pod `ERR_TUNNEL_CONNECTION_FAILED`. We fladze podaj tylko `http://host:port`, a dane uwierzytelniające przekazuj przez `page.authenticate()` na każdej nowej stronie.

### Jak rotować IP między stronami w Puppeteer?

Otwieraj każdą stronę w nowym kontekście przeglądarki lub daj każdej stronie nazwę użytkownika bez ID sesji. Nowy kontekst otwiera nowe połączenia, a każde połączenie zwykle ma inne proxy rezydencjalne jako wyjście. W obrębie jednej strony Chrome ponownie używa połączeń, więc żądania do tego samego serwisu często korzystają z tego samego IP wyjściowego do zamknięcia połączenia.

### Czy page.authenticate() działa z przechwytywaniem żądań?

Tak. Puppeteer sam obsługuje wyzwania uwierzytelniania proxy, a Twój handler przechwytywania musi tylko wywołać `continue()` lub `abort()` dla każdego żądania. Najpierw skonfiguruj `authenticate()`, a potem włącz przechwytywanie, jak w pierwszym przykładzie.

### Czy warto używać wtyczek stealth z puppeteer-extra razem z proxy?

Nie dokumentujemy ani nie wspieramy narzędzi mających na celu ukrycie automatyzacji lub obejście detekcji botów. Ich celem jest ominięcie decyzji serwisów o filtrowaniu odwiedzających automatycznych, co jest niezgodne z naszą [Polityką Akceptowalnego Użytkowania](https://crawlrelay.com/pl/acceptable-use/). Renderuj strony publiczne w umiarkowanym tempie i korzystaj z oficjalnych API, jeśli strony je udostępniają.

### Z którego Chrome korzysta Puppeteer z proxy?

Najnowsze wersje Puppeteer pobierają dopasowaną wersję Chrome for Testing i używają jej domyślnie. Flagi proxy i `page.authenticate()` działają w nim tak samo jak w zwykłym Chrome. Jeśli wskażesz Puppeteer na własnego Chrome z `executablePath`, dbaj o jego aktualizacje.

**Uruchom Puppeteer przez proxy rezydencjalne** 5,94 USD dla 10 GB, 0,50 USD/GB od 50 GB. [Zobacz ceny](https://crawlrelay.com/pl/pricing/) · [Poradnik Node.js](https://crawlrelay.com/pl/docs/node/)

---

CrawlRelay: CrawlRelay to serwis proxy rezydencjalne i mobilne proxy 4G/5G z rotacją, stworzony dla programistów i potoków danych AI: ruch bez wygasania w modelu pay-as-you-go od 0,50 USD/GB, płatny w kryptowalutach, bez konieczności przesyłania dokumentów. Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach.
