Selenium規避網站監測


現在不少大網站有對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()
Python Code


免責聲明!

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



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