Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cheeaun/puppetron

Open more actions menu

Repository files navigation

Puppetron

Puppeteer (Headless Chrome Node API)-based rendering solution.

Videos & Tweets:

⚠️⚠️⚠️ NOTE: Starting version 2.0, CJK and emoji support is gone.

🚧🚧🚧 PLEASE READ THIS 🚧🚧🚧

Do NOT use this for production use-cases.

This is just a demo site of what cool things that Puppeteer can do. Under any circumstances, this site may be down any time or be heavily rate-limited to prevent abuse.

Please check out what Puppeteer can do for your own use case and host on your own servers.

API

The API can perform 3 actions:

  • Screenshot - take a screenshot of the web page
  • Render - render and serialize a HTML copy of the web page
  • PDF - generate a PDF of the web page

URL - the URL with encoded pathname, search and hash.

Global parameters:

  • width - width of viewport/screenshot (default: 1024)
  • height - height of viewport/screenshot (default: 768)

Screenshot

/screenshot/{URL}
...or
/{URL}

Parameters:

  • thumbWidth - width of thumbnail, respecting aspect ratio (no default, has to be smaller than width)
  • fullPage - takes a screenshot of the full scrollable page (default: false). If the page is too long, it may time out.
  • clipSelector - CSS selector of element to be clipped (no default). E.g.: .weather-forecast.

Render

/render/{URL}

Notes:

  • script tags except JSON-LD will be removed
  • link[rel=import] tags will be removed
  • HTML comments will be removed
  • base tag will be added for loading relative resources
  • Elements with absolute paths like src="/xxx" or href="/xxx" will be prepended with the origin URL.

Parameters: None

PDF

/pdf/{URL}

Parameters:

  • format: Paper format that Puppeteer supports. E.g.: Letter, Legal, A4, etc. (default: Letter)
  • pageRanges: Paper ranges to print. E.g., 1-5, 8, 11-13 (default all pages)

Development

Requirements

Steps

  1. npm i
  2. npm start
  3. Load localhost:3000

Credits

Block list from Prerender.

For version 1.0, this uses cheeaun/puppeteer Docker image.

For version 2.0, this uses some parts from Zeit's now-examples: misc-screenshot.

Inspired by zenato/puppeteer, puppeteer-renderer and Rendertron.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.