看過非常多selenium文章,但能真正繞過的不多!下面為大家實作通過js檔案注入達到真正繞過的方法!歡迎點贊關注一鍵三連!
一、什么是真正繞過瀏覽器檢測?
-
https://bot.sannysoft.com 這是chrome的真正檢測網址
-
為什么要強調繞過webdriver屬性檢測?
- 有些網址通過webdriver檢測使得Selenium無法獲取元素、無法控制按鈕等情況
1、PC環境打開chrome的效果

一般來說普通的啟用webdriver即使也是會標紅的,以上是打開本地chrome的檢測驗性
2、 普通的啟動webdriver
- 上碼
from selenium import webdriver
class WebDriverChrome(object):
def __init__(self):
self.driver = self.StartWebdriver()
def StartWebdriver(self):
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(options=options)
return driver
def RunStart(self):
self.driver.get('https://bot.sannysoft.com')
# time.sleep(10)
# self.driver.quit()
if __name__ == '__main__':
Crawl = WebDriverChrome()
Crawl.RunStart()

3、Js注入真正繞過webdriver的檢測驗性
為什么我注入的js屬性有效?
- 該js檔案是pyppetter中繞過webdriver檢測所用到的
現在直接匯入到Selenium啟動的chrome中
關鍵的js檔案我放在了文末
上碼:
from selenium import webdriver
class WebDriverChrome(object):
def __init__(self):
self.driver = self.StartWebdriver()
def StartWebdriver(self):
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(options=options)
with open('./stealth.min.js') as f:
js = f.read()
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": js
})
return driver
def RunStart(self):
self.driver.get('https://bot.sannysoft.com')
# time.sleep(10)
# self.driver.quit()
if __name__ == '__main__':
Crawl = WebDriverChrome()
Crawl.RunStart()

js注入的檔案[stealth.min.js]
- 命名不統一要求能讀取就可以了
- 獲取方式:
- 安裝node.js
-
npx extract-stealth-evasions
就會在你執行命令的檔案夾下面生成一個stealth.min.js檔案
我是通過everything工具找到改js檔案,拷貝后再使用的,同時我也提供了csdn下免費的下載方式,因為資源無法直接免費下載,為了不耗費大家的C幣,關注我成為粉絲就能下載了

待審核通過后,我會在評論附上鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250230.html
標籤:python
