selenium 參數設置-window.navigator.webdriver


selenium 參數設置

selenium啟動chrome基本上與真實環境類似,但有一些變量還是不一樣,需要注意。

有些網站通過這些參數識別爬蟲。

 

window.navigator.webdriver

值為undefined是正常的瀏覽器,返回true說明用的是Selenium模擬瀏覽器。

這里給出一個檢測Selenium的js代碼例子

webdriver = window.navigator.webdriver;

if(webdriver){    console.log('Selenium模擬瀏覽器')

} else {    console.log('正常瀏覽器')}

 

解決辦法:

第一種:使用mitmproxy用中間人的方式截取服務器發送來的js,修改js里面函數的參值方式發送給服務器。相當於在browser和server之間做一層中介的攔截。不過此方法要對js非常熟悉。

 

第二種:通過selenium,設置Chromedriver的啟動參數。

 

在啟動Chromedriver之前,為Chrome開啟實驗性功能參數excludeSwitches,它的值為['enable-automation'],完整代碼如下:

 

from selenium.webdriver import Chrome

from selenium.webdriver import ChromeOptions

 

option = ChromeOptions()

option.add_experimental_option('excludeSwitches', ['enable-automation'])

driver = Chrome(options=option)

 

此時啟動的Chrome窗口,在右上角會彈出一個提示,不用管它,不要點擊停用按鈕。

再次查詢window.navigator.webdriver,可以發現這個值已經自動變成undefined。並且無論打開新網頁,開啟新窗口還是點擊鏈接進入其他頁面,都不會讓它變成true。

 


免責聲明!

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



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