Skip to main content

How to use Proxy with BrowserCloud

Using BrowserCloud built-in proxy servers

Add parameter &--proxy-server=browsercloud-proxies to browserWSEndpoint string to use built-in proxies

const puppeteer = require('puppeteer')

let token = 'BROWSERCLOUD_TOKEN';

async function run() {
try {
browser = await puppeteer.connect({
browserWSEndpoint:
'wss://chrome.browsercloud.io?token='+token+
'&--proxy-server=browsercloud-proxies',
});

const page = await browser.newPage();
await page.setExtraHTTPHeaders({
'browsercloud-token': token // proxy auth
});

await page.goto('https://iplocation.com/');
await page.screenshot({ path: `./image.jpeg` });
} catch (err) {
console.log(`❌ Error: ${err.message}`);
} finally {
await browser.close();
console.log(`🎉 Screenshot captured.`);
}
}

run();

Puppeteer & Bright Data / Luminati

info

Puppeteer & BrightData / Luminati

Please note that many proxies only support Chromium revisions in less than puppeteer 1.18.0. This is due to Chromium dropping support for Proxy-Authorization headers. Check your proxies documentation for how to properly authenticate, and ensure that you don't need to set a Proxy-Authorization header.

Add --proxy-server=https://my-proxy.com to endpoint URL to use your proxies for any framework

const puppeteer = require('puppeteer')

async function run() {
try {
browser = await puppeteer.connect({
browserWSEndpoint:
'wss://chrome.browsercloud.io?token=BROWSERCLOUD_TOKEN'+
'&--proxy-server=http://zproxy.lum-superproxy.io:22225',
});

const page = await browser.newPage();
await page.authenticate({
username: 'PROXY_LOGIN',
password: 'PROXY_PASSWORD'
});

await page.goto('https://iplocation.com/');

await page.setViewport({ width: 1900, height: 1080 });
await page.screenshot({ path: `./image.jpeg` });
} catch (err) {
console.log(`❌ Error: ${err.message}`);
} finally {
await browser.close();
console.log(`🎉 Screenshots captured.`);
}
}

run();