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();