為要考慮寫一個python應用, 查資料時無意發現老朋友selenium已經發展到和chrome很深入的階段。
chrome為了配合自動測試的需求,甚至專門開發chromedriver這樣的東西,一時技癢嘗試了一下
環境是前面搭好的centos7
google.com/chrome是牆外無法通路了,幸好還有它自家分号
https://www.google.cn/chrome/
windows下通路自動判斷給的是windows安裝包,要拉到最下選擇其他平台的,然後選擇“64 位 .rpm(适用于 Fedora/openSUSE)”,得到的是一個
google-chrome-stable_current_x86_64.rpm
然後yum安裝chrome以及中文字型
# yum install google-chrome-stable_current_x86_64.rpm
# yum install google-noto-sans-simplified-chinese-fonts
selenium略為麻煩,它要從python安裝,要用到pip
pip又不在centos的标準repo裡,我選擇先安裝epel源,
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install python2-pip python2-wheel
# pip install selenium
chromedriver自身位址也在牆外,幸好國内有個mirror
http://npm.taobao.org/mirrors/chromedriver
選擇了上面最新的76.0.3865.10,雖然我下載下傳的chrome版本以及到了76.0.3865.100
但大版本一緻就沒問題,下載下傳後是個zip檔案 chromedriver_linux64.zip
unzip 解壓之得到一個單獨的可執行檔案 chromedriver
終于可以開始小福利一下,誰讓csdn上python主和selenium下面最熱的居然不是自動測試,而是各種福利呢
先解決chrome不能直接在centos伺服器環境裡啟動的事
# export DISPLAY=192.168.0.102:0.0
## 伺服器上沒有安裝Xserver,不過MobaXterm自帶的有,很好很友善
# ./chromedriver &
# vim demo.py
然後在demo.py裡輸入代碼, 為免廣告嫌疑我把網址馬賽克了
from selenium import webdriver
cap = webdriver.DesiredCapabilities.CHROME.copy()
browser = webdriver.Remote(command_executor="http://localhost:9515", desired_capabilities=cap);
browser.get('https://手工馬賽克/tags-all.html')
福利截圖被攔截了,沒得妹子看
成功後位址欄下面有一行"Chrome is being controlled by automated test software"
對測試和爬蟲需求來說,chrome還有個更強大的特性是headless模式,全程無視窗模拟真實浏覽器
這次不打算往下撸了,有空再搞