pre-rendering, server-side rendering, screenshots, PDFs, and scraping | Headless-Render-API

// npm install prerendercloud
const fs = require("fs");
const prerendercloud = require("prerendercloud");
// set your API key via env var PRERENDER_TOKEN or the following line:
// prerendercloud.set('prerenderToken', 'mySecretToken')

// Headless-Render-API will scrape the HTML, parse
// various meta tags, links, and take a screenshot all
// on the server. The client only parses the results
const {
  body,
  meta: {
    title,
    h1,
    description,
    ogImage,
    ogTitle,
    ogDescription,
    ogType,
    twitterCard,
  },
  links, // array
  screenshot, // buffer
  statusCode, // number
  headers, // object of headers, e.g. { 'content-type': 'text/html' }
} = await prerendercloud.scrape("https://example.com", {
  withMetadata: true,
  withScreenshot: true,
  // followRedirects: false, // Default: false
  // deviceIsMobile: false, // Default: false, whether the meta viewport tag is taken into account
});

fs.writeFileSync("body.html", body);
fs.writeFileSync("screenshot.png", screenshot);

console.log({
  meta: {
    title,
    h1,
    description,
    ogImage,
    ogTitle,
    ogDescription,
    twitterCard,
  },
  links,
});