Zonder KYC — geen ID, geen selfie, geen documenten. Betaal met crypto: BTC, USDT, USDC, ETH, SOL, LTC
Taal: Nederlands
Aan de slag

Docs · Puppeteer · Chrome voor Testing

Puppeteer proxy authenticatie met residentiële en mobiele IP's

Chrome haalt het proxyadres uit een launch-vlag en de credentials uit page.authenticate(). Gebruik één browsercontext per sessie zodat credentials nooit lekken tussen taken.

Laatst bijgewerkt: · 4 min leestijd

Kort antwoord

Hoe gebruik ik een geverifieerde proxy in Puppeteer?

Start Chrome met --proxy-server=http://gw.crawlrelay.com:7777, en roep daarna page.authenticate({ username, password }) aan vóór de eerste goto. Chrome negeert credentials die in de vlag staan. CrawlRelay residentiële proxy's lezen het land en de sticky sessie uit de gebruikersnaam, dus elke pagina of context kan zijn eigen exit hebben. Verkeer kost US$ 0,50/GB vanaf 50 GB. Betaald in crypto, zonder KYC.

Puppeteer setup in één oogopslag

Proxyadres--proxy-server=http://gw.crawlrelay.com:7777 binnen args, of proxyServer op een browsercontext
Credentialsawait page.authenticate({ username, password }) vóór navigatie
Gescheiden sessiesbrowser.createBrowserContext({ proxyServer }): één context per sessie
SOCKS5Niet met authenticatie in Chrome: gebruik de HTTP-poort
Verkeer besparenpage.setRequestInterception(true) en images, fonts en media afbreken

Hoe stel ik een enkele geauthenticeerde proxy in?

Dit is het minimale patroon. Het try … finally blok sluit Chrome zelfs als een navigatie mislukt, wat belangrijk is op servers waar verweesde browsers zich opstapelen.

Node.js (ES-module): één browser, één exit
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();
}

Hoe start ik meerdere sessies of landen in één browser?

Maak één browsercontext per sessie. Een context is een geïsoleerd profiel met eigen cookies, cache en netwerkstatus, dus de credentials die je aan een context geeft lekken niet naar een andere. Geef elke context een gebruikersnaam met een eigen land of sessie-ID.

Node.js: één context per sticky sessie
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();
}

Waarom toont Puppeteer een 407 of ERR_TUNNEL_CONNECTION_FAILED?

Omdat Chrome geen credentials stuurde, of de verkeerde. Controleer drie dingen:

  1. page.authenticate() wordt uitgevoerd vóór de eerste goto op die pagina.
  2. De --proxy-server vlag of proxyServer bevat alleen het schema, host en poort, zonder user:pass@ deel.
  3. De gebruikersnaam heeft geen typefout in het doelgedeelte: test het eerst met curl, zoals getoond op de 407 pagina.

Als curl slaagt met dezelfde gebruikersnaam en wachtwoord maar Puppeteer faalt nog steeds, lees dan ERR_TUNNEL_CONNECTION_FAILED.

Hoeveel verkeer kost een Puppeteer pagina?

Alles wat Chrome downloadt wordt gefactureerd: de HTML, scripts, styles, afbeeldingen, fonts en de API-aanroepen die de pagina doet. The HTTP Archive Web Almanac 2025 mat een mediane paginagrootte van 2.164 KB mobiel en 2.412 KB desktop. Het blokkeren van afbeeldingen, fonts en media met request-interceptie verlaagt dat meestal tot een paar honderd kilobytes, en het teruggeven van cachede responses voor herhaalde scripts drukt het nog verder. Gebruik roterende mobiele IP's alleen voor de pagina's die ze nodig hebben: mobiel verkeer kost US$ 1,50/GB vanaf 5 GB, residentieel US$ 0,50/GB vanaf 50 GB.

Puppeteer en proxy's: vragen

Kan ik de gebruikersnaam en het wachtwoord in --proxy-server zetten?

Nee. Chrome negeert credentials in de --proxy-server vlag, en het eerste HTTPS-verzoek mislukt dan met een 407 verborgen achter ERR_TUNNEL_CONNECTION_FAILED. Zet alleen http://host:port in de vlag en geef de credentials mee met page.authenticate() op elke nieuwe pagina.

Hoe roteer ik het IP tussen pagina's in Puppeteer?

Open elke pagina in een nieuwe browsercontext, of geef elke pagina een gebruikersnaam zonder sessie-ID. Een nieuwe context opent nieuwe verbindingen, en elke verbinding krijgt meestal een andere residentiële exit. Binnen één pagina hergebruikt Chrome verbindingen, dus verzoeken naar dezelfde site delen vaak een exit tot de verbinding sluit.

Werkt page.authenticate() met request-interceptie?

Ja. Puppeteer handelt zelf de authenticatie-uitdaging van de proxy af, en jouw interceptie-handler hoeft alleen continue() of abort() aan te roepen op elk verzoek. Zet authenticate() eerst op, en schakel dan interceptie aan, zoals in het eerste voorbeeld.

Moet ik puppeteer-extra stealth plugins gebruiken met proxy's?

Wij documenteren of ondersteunen geen tools die automatisering verbergen of botdetectie omzeilen. Het doel is om langs een site's beslissing te komen om geautomatiseerde bezoekers te filteren, wat ons Acceptable Use Policy niet toestaat. Render openbare pagina's rustig en gebruik officiële API's waar beschikbaar.

Welke Chrome gebruikt Puppeteer bij de proxy?

Recente Puppeteer-versies downloaden standaard een bijpassende Chrome voor Testing build. De proxyvlaggen en page.authenticate() werken daarin hetzelfde als in reguliere Chrome. Gebruik je je eigen Chrome met executablePath, houd die browser dan up-to-date.

Run Puppeteer via residentiële IP's

US$ 5,94 voor 10 GB, US$ 0,50/GB van 50 GB.

Vanaf US$ 0,50/GB · zonder KYC

Aan de slag