現在不少大網站有對selenium采取了監測機制。比如正常情況下我們用瀏覽器訪問淘寶等網站的 window.navigator.webdriver的值為 undefined。而使用selenium訪問則該值為true。那么如何解決這個問題呢?
只需要設置Chromedriver的啟動參數即可解決問題。在啟動Chromedriver之前,為Chrome開啟實驗性功能參數excludeSwitches,它的值為['enable-automation'],完整代碼如下:
import time from selenium import webdriver from selenium.webdriver import ChromeOptions # 需要導入的類 # 創建 option 對象 option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) # 創建瀏覽器對象 driver = webdriver.Chrome(options=option) driver.implicitly_wait(10) driver.get('https://www.taobao.com/') print(driver.title) # 淘寶網 - 淘!我喜歡 time.sleep(2) driver.quit()
示例2(帶無頭的):

import time from selenium import webdriver from selenium.webdriver import ChromeOptions # 需要導入的類 from selenium.webdriver.chrome.options import Options # 創建一個參數對象,用來控制chrome以無界面模式打開 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') # 創建瀏覽器對象 # driver = webdriver.Chrome(chrome_options=chrome_options) # 創建 option 對象 option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) # 創建瀏覽器對象 driver = webdriver.Chrome(options=option, chrome_options=chrome_options) driver.implicitly_wait(10) driver.get('https://www.taobao.com/') print(driver.title) # 淘寶網 - 淘!我喜歡 time.sleep(2) driver.quit()