简介
Splash是一个使用Twisted和QT5在Python 3中实现的支持HTTP API调用的轻量级的web浏览器,它使用Twisted和QT的反射机制以使服务完全异步并通过QT主循环以便利用webkit并发性,能提供JavaScript渲染服务。
Splash 的主要功能:
- 支持并行处理多个页面
- 支持获取返回的HTML代码或者获取返回页面的截屏图片
- 可以通过禁止图片加载或者使用Adblock Plus插件来提高加载页面的速度
- 在页面的上下文中执行用户的JavaScript代码
- 编写lua脚本来操作浏览器
- 在Splash-Jupyter中支持lua脚本
- 在格式化的HAR 数据中获取渲染的相关细节
安装
centos + dockeer
- 下载 并安装 docker
- 拉取镜像:
sudo docker pull scrapinghub/splash
- 启动容器:
–memory=4.5G 指的是 docker 在启动这个容器时可以使用的最大内存值。docker run -d -p 8050:8050 --memory=4.5G --restart=always scrapinghub/splash:3.1 --maxrss 4000 --slots 50 --max-timeout 3600
–restart=always 崩溃后自动重启。
–maxrss 4000 指的时候 splash 进程最多能使用内存,默认单位是M。
–slots 50 并发线程数,当同时请求数超过配置的线程数量时,请求会进去队列等待,超时时间是从spalsh收到请求之后开始计算的,所以如果请求进入队列等待,在队列里等待的时间也会被算在超时等待内。
–max-timeout 3600 最大超时时间,单位是秒。 - 测试是否启动:curl http://localhost:8050/_ping