上一篇文章中,我们提到了使用 CDP 协议执行stealth.min.js
文件,它能完美隐藏 Chrome 浏览器的各个特征
Selenium 最强反反爬方案来了!
但是最近,Chrome 的版本号提高到了 88,有同学发现stealth.min.js
文件,已经无法正确隐藏window.navigator.webdriver
了
如图:
这是因为,从 Chrome 88 开始,它的 V8 引擎升级了,一些接口发生了改变
比如:
代码语言:javascript复制Object.defineProperty(navigator, 'webdriver', {
get: () =>undefined
})
如果你在 Selenium 启动的 Chrome 88版本执行这段代码,你会发现运行报错
遇到这种情况怎么办呢?
Google 关闭了一扇门的时候,又给你打开了一扇窗
实际上,我们在使用 Selenium 调用 Chrome 的时候,只需要增加一个配置参数就可以再次隐藏 window.navigator.webdriver
了
# 增加一个参数设置
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
运行结果如下: