Browserless

Powerful browser automation built for developers

Integrate the Browserless API with the Node API

Setup the Browserless API trigger to run a workflow which integrates with the Node API. Pipedream's integration platform allows you to integrate Browserless and Node remarkably fast. Free for developers.

Generate PDF from HTML String with the Browserless API
 
Try it
Run Node Code with the Node API

Write custom Node.js code and use any of the 400k+ npm packages available. Refer to the Pipedream Node docs to learn more.

 
Try it
Take a Screenshot with the Browserless API
 
Try it

Overview of Browserless

Browserless allows you to build websites and applications that can be used
without a web browser. This means that you can create apps that can be used
offline, or that can be used on devices that don't have a web browser
installed.

Some examples of things that you can build using Browserless are:

  • A website that can be used without a web browser
  • An app that can be used offline
  • A app that can be used on devices that don't have a web browser installed

Connect Browserless

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import puppeteer from 'puppeteer-core@14.1.0';

export default defineComponent({
  props: {
    browserless: {
      type: "app",
      app: "browserless",
    }
  },
  async run({steps, $}) {
    // See the browserless docs for more info:
    // https://www.browserless.io/docs/
    const browser = await puppeteer.connect({ 
      browserWSEndpoint: `wss://chrome.browserless.io?token=${this.browserless.$auth.api_key}` 
    })
    const page = await browser.newPage()
    
    const url = "https://example.com"
    const type = "png"
  
    await page.goto(url)
    const screenshot = await page.screenshot()
    
    // export the base64-encoded screenshot for use in future steps,
    // along with the image type and filename
    $.export("screenshot", Buffer.from(screenshot, 'binary').toString('base64'))
    $.export("type", type)
    $.export("filename",`${url.replace(/[&\/\\#, +()$~%.'":*?<>{}]/g, '_')}-${+new Date()}.${type}`)
    
    await browser.close()
  },
})

Connect Node

1
2
3
4
5
6
7
// To use previous step data, pass the `steps` object to the run() function
export default defineComponent({
  async run({ steps, $ }) {
    // Return data to use it in future steps
    return steps.trigger.event
  },
})

Community Posts

Automate checking a ticket system's availability with Node.js and Pipedream
Automate checking a ticket system's availability with Node.js and Pipedream
How I used Node.js and Pipedream to automatically scrape a ticket booking site and notify me if availability had changed.