selenium之設置無頭瀏覽器及代理


一. 應用領域

在自動化測試以及爬蟲領域,無頭瀏覽器的應用場景非常廣泛。

二. 無頭瀏覽器介紹

通常大家在打開網頁的工具就是瀏覽器,通過界面上輸入網址就可以訪問相應的站點內容,這個就是通常所說的基於界面的瀏覽器。除了這種瀏覽器之外,還有一種叫做無頭瀏覽器,主要是用作爬蟲,用以捕捉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\..

上面的問題是版本不匹配造成的,換一個版本即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM