Selenium真正绕过webdriver检测

 

 

一、什么是真正绕过浏览器检测?
. https://bot.sannysoft.com这是chrome的真正检测网址。

为什么要强调绕过webdriver属性检测?
有些网址通过webdriver检测使得Selenium无法获取元素、无法控制按钮等情况

1、PC环境打开chrome的效果 

 

 一般来说普通的启用webdriver即使也是会标红的,以上是打开本地chrome的检测属性

2、普通的启动webdriver

from selenium import webdriver
from selenium.webdriver.chrome.service import Service


class WebDriverChrome(object):
def __init__(self):
self.driver = self.StartWebdriver()

def StartWebdriver(self):
s = Service('../lib/chromedriver.exe')
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(service=s, 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()

第一种:Js注入绕过webdriver的检测属性

1、Js注入真正绕过webdriver的检测属性。为什么我注入的js属性有效?
该js文件是pyppetter中绕过webdriver检测所用到的现在直接导入到Selenium启动的chrome中
上码:

安装node.js
npx extract-stealth-evasions
就会在你执行命令的文件夹下面生成一个stealth.min.js文件

第二种:使用 undetected_chromedriver

undetected_chromedriver

安装:pip install undetected-chromedriver

使用方法

undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。

import undetected_chromedriver asuc

driver = uc.Chrome ()

driver.get(' https: //nowsecure.nl')

posted @ 2022-08-05 10:45  BUGMANWL  阅读(3092)  评论(0编辑  收藏  举报