Puppeteer proxy integration
Puppeteer sets the proxy as a Chromium launch argument, then supplies the username and password through page.authenticate(). This two-step pattern is the idiomatic way to run authenticated proxies in headless Chrome, and it works the same in headful mode for debugging.
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
args: ["--proxy-server=http://gateway.murphyproxies.com:8000"],
});
const page = await browser.newPage();
// Chrome takes the credentials here, not on the launch argument.
await page.authenticate({
username: "USERNAME",
password: "PASSWORD",
});
await page.goto("https://httpbin.org/ip", { waitUntil: "networkidle0" });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Setup in 5 steps
- 1Install the client with npm install puppeteer.
- 2Pass --proxy-server=http://gateway.murphyproxies.com:8000 in the launch args.
- 3Call page.authenticate() with your Murphy username and password before navigating.
- 4Navigate with waitUntil set to networkidle0 so the page settles before you read it.
- 5Evaluate document.body.innerText on an IP echo page to confirm the exit IP.
Puppeteer proxy questions
Everything you need to route Puppeteer through Murphy, from authentication to rotation.
The host and port go in the --proxy-server launch argument, but the username and password go through page.authenticate() on each page. Chromium will not accept credentials embedded in the launch flag, so this split is required.
Call page.authenticate() once per page object before its first navigation. If you open several pages in the same browser, authenticate each one, or route your work through a single page to keep it simple.
Chromium supports SOCKS5 via --proxy-server=socks5://gateway.murphyproxies.com:8000, but it does not support SOCKS5 username and password authentication. For authenticated proxies with Puppeteer, use the HTTP scheme with page.authenticate() as shown.
Get credentials for Puppeteer
Pick the network that fits your target. ISP proxies for fast, stable sessions, residential proxies for broad IP diversity against strict anti-bot systems.