每次用Selenium的时候挺烦这个driver的,部署在自己使用的电脑上吧,用起来真心难受,太影响自己平时使用了,好在docker有这个,直接把爬虫脚本,测试脚本仍在这里面,再加上docker可以快速搞很多node,用起来还是挺舒服的。
相关镜像的拉取
首先拉取这个Selenium镜像,和我们平时拉镜像的方法不同的是,这个镜像要拉取多个的,使用如下命令。
docker pull selenium/hub
这个相当于我们使用的Selenium各种库,众所周知,我们使用Selenium不仅需要使用库,还有更重要的是浏览器及对应的driver
所以就要再拉取一个镜像(这个是chrome,想用其他的也可以的),使用如下命令
docker pull selenium/node-chrome
使用如下命令查看下这俩镜像是否拉取成功
docker images
可以看到镜像还是比较大的。
镜像启动相关
首先启动主hub镜像,使用命令如下
docker run -d -P --name selenium-hub selenium/hub
命令相关参数解释:
-d 后台运行容器,并返回容器的id
-P 随机映射一个内部开放的端口到主机的49000~49900端口,也可以使用-p指定一个端口
启动分支node chrome镜像,使用如下命令
docker run -d -v e:\MWX:/share --link selenium-hub:hub -it selenium/node-chrome /bin/bash
命令相关参数解释:
-d 后台运行容器
-v e:\MWX:/share 类似于挂载本地文件夹到容器中,方便我们和主机之前共享爬虫的数据之类的
-it /bin/bash 启动一个命令行
--link是通过link命令关联主hub镜像selenium-hub启动的指定容器,并且为这个主镜像的容器设置了别名bub
使用上述命令
使用如下命令查看下容器
docker ps
启动完成
基本使用
使用起来基本上和主机上是一样的,需要注意的是运行脚本连接的地方是在这个nod-chrome容器中。
只不过docker上没有界面,所以只能根据最后运行的输出来判断是否运行成功。
比如我们可以写一个简单的测试脚本使用下:
进入chrome容器中运行该脚本