不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

Selenium绕过webdriver检测

看过非常多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_argument("--disable-blink-features=AutomationControlled")
    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文件

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » Selenium绕过webdriver检测

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏