
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Render JavaScript-rendered page as HTML/PDF/mhtml/png/jpeg using headless Chrome
Headless mode is supported in Chrome stable 59+ and unstable/dev channel, you should be able to install it via:
https://www.google.com/chrome/browser/beta.html?platform=linux
$ google-chrome --headless --remote-debugging-port=9222 --disable-gpu "about:blank"
To disable image loading, add --blink-settings=imagesEnabled=false
argument:
$ google-chrome --headless --remote-debugging-port=9222 --disable-gpu --blink-settings=imagesEnabled=false "about:blank"
$ pip install -U prerender
As standalone application:
$ prerender
To run it under gunicorn:
$ gunicorn --bind 0.0.0.0:3000 --worker-class sanic.worker.GunicornWorker prerender.app:app
Say you deployed Prerender under http://prerender.example.com:8000
, to render http://example.com
you can do:
$ # render HTML
$ curl http://prerender.example.com:8000/http://example.com
$ curl http://prerender.example.com:8000/html/http://example.com
$ # render mhtml
$ curl http://prerender.example.com:8000/mhtml/http://example.com
$ # render PDF
$ curl http://prerender.example.com:8000/pdf/http://example.com
$ # render png
$ curl http://prerender.example.com:8000/png/http://example.com
$ # render jpeg
$ curl http://prerender.example.com:8000/jpeg/http://example.com
Settings are mostly configured by environment variables.
ENV | default value | description |
---|---|---|
HOST | 0.0.0.0 | Prerender listen host |
PORT | 8000 | Prerender listen port |
DEBUG | false | Toggle debug mode |
PRERENDER_TIMEOUT | 30 | renderring timeout |
PAGE_DONE_CHECK_TIMEOUT | 200 | Number of milliseconds between the interval of checking whether the page is done loading or not |
CONCURRENCY | 2 * CPU count | Chrome pages count |
MAX_ITERATIONS | 200 | Restart Chrome page after rendering this many pages |
CHROME_HOST | localhost | Chrome remote debugging host |
CHROME_PORT | 9222 | Chrome remote debugging port |
USER_AGENT | Chrome User Agent | |
BLOCK_FONTS | 1 | Block web fonts loading, set to 0 to allow fonts loading |
ALLOWED_DOMAINS | Domains allowed for renderring, comma seperated | |
CACHE_BACKEND | dummy | Cache backend, dummy , disk , s3 |
CACHE_LIVE_TIME | 3600 | Disk cache live seconds |
CACHE_ROOT_DIR | /tmp/prerender | Disk cache root directory |
S3_SERVER | s3.amazonaws.com | S3 server address |
S3_ACCESS_KEY | S3 access key | |
S3_SECRET_KEY | S3 secret key | |
S3_REGION | S3 region | |
S3_BUCKET | prerender | S3 bucket name |
SENTRY_DSN | Sentry DSN, for exception monitoring | |
ENABLE_CIRCUIT_BREAKER | false | enable circuit breaker |
CIRCUIT_BREAKER_FAIL_MAX | 5 | maximum failures per browser/bot before circuit breaker open |
CIRCUIT_BREAKER_RESET_TIMEOUT | 60 | circuit breaker reset timeout in seconds |
Please view the original NodeJs version prerender README.
MIT
FAQs
Render JavaScript-rendered page as HTML using headless Chrome
We found that prerender demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.