Splash is a javascript rendering service. It’s a lightweight web browser with an HTTP API, implemented in Python 3 using Twisted and QT5. The (twisted) QT reactor is used to make the service fully asynchronous allowing to take advantage of webkit concurrency via QT main loop.
Features
- process multiple webpages in parallel;
- get HTML results and/or take screenshots;
- turn OFF images or use Adblock Plus rules to make rendering faster;
- execute custom JavaScript in page context;
- write Lua browsing scripts;
- develop Splash Lua scripts in Splash-Jupyter Notebooks.
- get detailed rendering info in HAR format.
Install on OS X
1. Install Docker for Mac (see https://docs.docker.com/docker-for-mac/)
2. Pull the image:
$ docker pull scrapinghub/splash
3. Start container:
$ docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash
Splash is available at 0.0.0.0 address at ports 8050 (http) and 5023 (telnet).
Test
Execute in Terminal:
$ curl 'http://localhost:8050/render.html?url=http://34.77.149.250/&timeout=20'