一. 應用領域
在自動化測試以及爬蟲領域,無頭瀏覽器的應用場景非常廣泛。
二. 無頭瀏覽器介紹
通常大家在打開網頁的工具就是瀏覽器,通過界面上輸入網址就可以訪問相應的站點內容,這個就是通常所說的基於界面的瀏覽器。除了這種瀏覽器之外,還有一種叫做無頭瀏覽器,主要是用作爬蟲,用以捕捉
Web
上的各類數據;這里的無頭主要是指沒有界面,完全是后台操作。它就是一個真實的瀏覽器。只是這個瀏覽器是無界面的。也稱為無界面瀏覽器
。
三. selenium之谷歌
1. chromedriver.exe下載地址
https://npm.taobao.org/mirrors/chromedriver
2. 谷歌無頭瀏覽器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:\chromedriver_win32\chromedriver.exe')
driver.get("http://httpbin.org/ip")
print(driver.page_source)
driver.quit()
3. 谷歌無頭瀏覽器加IP代理
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("--proxy-server=http://代理服務器地址:代理服務器端口號")
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:\chromedriver_win32\chromedriver.exe')
driver.get("http://httpbin.org/ip")
print(driver.page_source)
driver.quit()
四. selenium之火狐
1. geckodriver.exe下載地址
https://github.com/mozilla/geckodriver/releases
2. 火狐無頭瀏覽器
from selenium import webdriver
profile = webdriver.FirefoxOptions()
profile.add_argument('-headless') # 設置無頭模式
browser = webdriver.Firefox(options=profile, executable_path='Z:\geckodriver-v0.29.0-win64\geckodriver.exe')
browser.get('http://httpbin.org/ip')
print(browser.page_source)
browser.quit()
3. 火狐無頭瀏覽器加代理
from selenium import webdriver
profile = webdriver.FirefoxOptions()
profile.add_argument('-headless')
# 設置代理服務器
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http', 代理服務器IP地址[字符串類型])
profile.set_preference('network.proxy.http_port', 代理服務器端口號[整數類型])
browser = webdriver.Firefox(options=profile, executable_path='Z:\geckodriver-v0.29.0-win64\geckodriver.exe')
browser.get('http://httpbin.org/ip')
print(browser.page_source)
browser.quit()
五. 擴展小知識
其實還有一個是
PhantomJS
可以設置無頭瀏覽器。但是這個目前停止更新了,所以我就不過多地介紹它了。真正掌握上面的兩種主流的用在開發方面的瀏覽器就已經差不多了。
六. 擴展
1. 不關閉瀏覽器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("detach", True) # 不關閉瀏覽器
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
driver.get("http://www.baidu.com")
print(driver.page_source)
七. 相關問題
1. 版本不匹配
Current browser version is 94.0.4606.81 with binary path C:\Program Files\..
。
上面的問題是版本不匹配
造成的,換一個版本即可。