One solution for all your work
Run all your headless workloads through browserless. We support nearly every headless library out there: puppeteer, selenium and more.
In most cases it's as easy as changing a single line of code.
const puppeteer = require('puppeteer');
// Before
const browser = await puppeteer.launch();
// after
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://chrome.browserless.io?token=abc'
});
docker run
-d
-p 3000:3000
-e "DEBUG=browserless/chrome"
-e "MAX_CONCURRENT_SESSIONS=10"
--name browserless
--restart always
browserless/chrome:latest
Highly configurable
Control queuing behavior, concurrent requests, and even launch flags. All bundled up in an elegant docker interface that can be used in cloud providers and kubernetes.
Truly browserless
With a wide number of REST API's, you don't have to use a library or be running NodeJS to do your work. Our APIs can do simple things like screenshots and PDFs with ease while taking care of common issues.
module.exports = async ({ req, page, callback }) => {
await page.goto(req.params.url);
const screenshot = await puppeteer.screenshot();
return callback(null, { screenshot });
}