安装docker
安装docker就一条例命令就好了
[root@spider1 ~]# yum install docker
配置docker的源.
[root@spider1 ~]# vi /etc/docker/daemon.json
# 写入一下内容, 注意.先按'i', 更换为输入模式. 然后再填写内容
{
"registry-mirrors": ["https://registry.docker-cn.com/"]
}
# 保存: 先按esc. 退出输入模式, 然后输入":wq" 表示写入, 退出. 就完事儿了
[root@spider1 ~]# systemctl start docker # 启动docker
[root@spider1 ~]# docker ps # 查看docker运行状态
如需关闭或者重新启动docker:
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
安装splash
-
拉取splash镜像
docker pull scrapinghub/splash
splash比较大. 大概2个G左右. 有点儿耐心等会儿就好了
-
运行splash
docker run -p 8050:8050 scrapinghub/splash
-
打开浏览器访问splash
安装过程中可能遇到的错误:
Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:53458->[::1]:53: read: connection refused
解决
vim /etc/resolv.conf
加入:
nameserver 8.8.4.4
nameserver 8.8.8.8
splash的http-api接口
splash提供了对外的http-api接口. 我们可以像访问一个普通url一样访问splash. 并由splash帮助我们渲染好页面内容.
http://192.168.31.82:8050/render.html?url=http://www.baidu.com
虽然看不出任何差别. 但是你心里要清楚一个事情. 此时拿到的直接是经过js渲染后的html
我们换个url
http://192.168.31.82:8050/render.html?url=https://www.endata.com.cn/BoxOffice/BO/Year/index.html&wait=5
endata这个网站. 它的数据是后期经过ajax请求二次加载进来的. 我们通过splash可以等待它后期加载完再拿html.
综上, splash的工作机制:
整个一个代理服务器的逻辑. ~~~~