Selenium反屏蔽處理

Selenium自動化過程,在瀏覽器內會顯示如下字樣

 

 當出現此內容時,有些網站就會判定是機器在進行操作,然後網站會加載防機器操作程序,如下圖滑塊驗證

 

 觸發反機器操作的原理大概如下

 

 解決方法

 

 具體代碼,加入到腳本中,替代定義瀏覽器即可

option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=option)
browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
   'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})

執行後就不會有顯示瀏覽器正受到自動軟件的控制,也沒有驗證碼了

 

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time

option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=option)
browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
   'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})

#browser = webdriver.Chrome()

#browser = webdriver.Chrome(ChromeDriverManager().install())

browser.get('http://www.baidu.com')
search = browser.find_element_by_id('kw')
search.send_keys('python')
search.send_keys(Keys.ENTER)

time.sleep(20)

#browser.close()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章