每次用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容器中運行該腳本