Puppeteer (Headless Chrome Node API)-based rendering solution.
Videos & Tweets:
clipSelector
demo https://www.youtube.com/watch?v=wYCrJu-Wy2E⚠️⚠️⚠️ NOTE: Starting version 2.0, CJK and emoji support is gone.
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.
The API can perform 3 actions:
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/{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/{URL}
Notes:
script
tags except JSON-LD
will be removedlink[rel=import]
tags will be removedbase
tag will be added for loading relative resourcessrc="https://github.com/cheeaun/puppetron/raw/master/xxx"
or href="https://github.com/cheeaun/puppetron/blob/master/xxx"
will be prepended with the origin URL.Parameters: None
/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)npm i
npm start
localhost:3000
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.