python+Chromedriver實現瀏覽器視覺化執行和後臺靜默執行
網上介紹python+Chromedriver的使用文章有很多,但是把兩種展示方式統一總結的文章很少,本文章旨在填補這一空缺。
本文章僅介紹在Windows10環境下基於python2.7.8(32位)使用Chrome瀏覽器的應用,水平有限,只用作入門交流。
一、使用Chromedriver的視覺化執行
1、配置python環境(已經安裝好python環境的可以跳過此步驟)
本文以python2.7.8的32位版本為例,到python官網(點選開啟連結)下載相應python安裝包,進行安裝(可以一直點選“下一步”按鈕預設裝到C盤或者選擇電腦上任一位置)。之後配置環境變數。以win10系統為例,對“此電腦”右鍵-屬性,(也可以在控制面板裡面的系統中查詢)。
圖1.1
點選左側高階系統設定。
圖1.2
之後點選環境變數,在系統變數中選擇path然後點選“新建”,把python的安裝目錄加入系統變數。
圖1.3
圖1.4
圖1.5
點選確定後退出,同時按win+R,在輸入框中輸入cmd,點選確定,之後輸入python如果顯示版本資訊則證明安裝成功。
2、配置Chromedriver
安裝Chrome瀏覽器(本文安裝位置C:\Program Files (x86)\Google\Chrome\Application),下載chromedriver,把下載的chromedriver.exe放在chrome的安裝位置資料夾\Chrome\Application下,之後把...\Chrome\Application檔案配置進環境變數裡面,如上圖1.5所示。到此Chromedriver安裝成功。Chrome 瀏覽器和 Chromedriver版本對應如下:
圖1.6
3、安裝selenium
3.1、開啟python編輯器,(本文以pythoncharm為例),在設定-專案裡面,在project interpreter裡面點選右側的+,在進入的下一次選單裡的輸入框中進行搜尋可以進行setuptools、pip及selenium的安裝。
圖1.7
圖1.8
3.2、直接安裝selenium
開啟網址https://pypi.python.org/pypi/setuptools下載setuptools,進行安裝,並把安裝目錄C:\Python27\Scripts配置進圖1.5所示的環境變數裡面,之後使用pip install -U selenium ,進行安裝。當然也可以直接下載selenium安裝包進行安裝,別的文章已經介紹的很清楚,在此不再贅述。
4、使用Chromedriver開啟任一網址
開啟python編輯器,輸入以下程式碼並執行:
#-*- coding: UTF-8 -*-from selenium import webdriver
driver =webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")#開啟Chroem瀏覽器
driver.get('http://baidu.com')#開啟百度首頁,可以更換引號內的網址實現開啟任一網址
print driver.title#在編輯器的終端可以看到網站的標題打印出來
driver.quit()#關閉Chrome瀏覽器,如果不寫這句話瀏覽器就會停留在百度首頁不會關閉瀏覽器
執行結果會開啟Chrome瀏覽器進入百度首頁然後迅速退出,如果想把瀏覽器執行結果保留住,可以把上述程式碼的最後一行刪除或者註釋掉。
二、實現Chromedriver的後臺靜默執行(這部分是重點)
如果不需要Chromedriver每次執行時都開啟瀏覽器,可以使Chromedriver在後臺執行,在終端可以看到執行情況。這部分應該算是進階版,所以環境變數的配置並沒有詳細介紹,如果不會配置環境變數可以參考本文章的第一部分內容。
1、配置Chromedriver
把上文提到的Chromedriver.exe檔案再複製到python的安裝目錄C:\Python27和C:\Python27\Scripts下(這部分配置與第一部分不衝突,不需要對Chrome瀏覽器進行更改),並把C:\Python27和C:\Python27\Scripts都配置進環境變數。一般安裝python時C:\Python27已經配置了環境變數,安裝pip時C:\Python27\Scripts也已經配置了環境變數,所以一般不需要多做修改。
2、執行程式碼
#-*- coding: UTF-8 -*-
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('http://baidu.com')#開啟百度首頁,可以更換引號內的網址實現開啟任一網址
print driver.title#在編輯器的終端可以看到網站的標題打印出來
driver.quit()#關閉Chrome瀏覽器,如果不寫這句話瀏覽器就會停留在百度首頁在後臺執行不會關閉瀏覽器
執行上述程式碼,會在後臺執行Chromedriver並把標題列印在終端,一般可以配合爬蟲程式使用。