selenium 反爬虫之跳过滑块验证

某宝有自己对selenium的验证,在使用selenium自动化登录t宝时,往往会出现滑块验证失败问题。

原因

首先很多熟悉JS的人都知道t宝会检测window.navigator.webdriver(js检测特征之一)selenium 反爬虫之跳过滑块验证_第1张图片

观察一下他的全局JS,(这个是我参考别人的思路)你会发现淘宝在你浏览器内置的JS中有这么一段代码selenium 反爬虫之跳过滑块验证_第2张图片

就是这个标黄色的东西,window.navigator.webdriver控件检测到你是selenium进入!那我们接下来就需要干掉他。

解决方法

具体就是 你需要关把window.navigator.webdriver设为"undefined"。

需要你在使用selenium自动化启动浏览器前加入这一段代码

# chrome的版本号小于88,在你启动浏览器的时候(此时没有加载任何网页内容),向页面嵌入js代码,去掉webdriver。
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",  {
    "source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
    })

# chrome的版本大于等于88
option = Options()
option.add_experimental_option('excludeSwitches', ['enable-automation']
option.add_argument('--disable-blink-features=AutomationControlled')
web = Chrome(options=option)

加上这个代码可以关闭开发者模式

selenium 反爬虫之跳过滑块验证_第3张图片

这样我们就可以解决selenium被检测到导致不能登录。据我所了解,大部分的window.navigator.webdriver控件检测都可以用这两个代码绕过检测。

selenium 反爬虫之跳过滑块验证_第4张图片

你可能感兴趣的:(selenium,爬虫)