katch!
a very simple wrapper utility for headless chrome to easily export any webpage as png
, pdf
or html
(prerender), you can use it via http
or cli
. katch
was created after revamping scraply to help in scraping client-side apps.
Usage
# run katch server in a separate terminal window
$ katch serve --listen=:3000
- a screenshot from google.com?
http://localhost:3000/export?format=png&url=https://google.com
- a screenshot but with a custom screen size?
http://localhost:3000/export?format=png&viewport_width=1300&viewport_height=1600&url=https://google.com
- a full-screen screenshot!
http://localhost:3000/export?format=png&png_full_page=true&url=https://google.com
http://localhost:3000/export?format=pdf&pdf_print_background=true&pdf_landscape=false&pdf_paper_height=25&pdf_paper_width=20&viewport_width=1300&viewport_height=1600&url=https://google.com
http://localhost:3000/export?format=html&url=https://google.com
- limit execution time to 5 seconds?
http://localhost:3000/export?format=pdf&max_exec_time=5&viewport_width=1300&viewport_height=1600&url=https://google.com
- scroll vertically by 100 pixels (scroll 1 time by 100 pixels vertically), you can do an infinity scroll by setting scroll_times=-1 !.
http://localhost:3000/export?format=png&url=https://youtube.com&scroll_step=100&scroll_times=1
NOTE: you can post JSON payload to the same endpoint with the same query params names above.
NOTE: for cli
usage, please run $ katch help
Download ?
you can go to the releases page and pick the latest version.
or you can $ docker run --rm -it ghcr.io/alash3al/katch katch help
Contribution ?
for sure you can contribute, how?
- clone the repo
- create your fix/feature branch
- create a pull request
nothing else, enjoy!
About
I'm Mohamed Al Ashaal, a software engineer :)