隐藏webdriver

最近不小心把chrome浏览给升级了,然后前几天有用到selenium去访问某宝。就除了一些问题,,,
然后找了半天原因,说是要把selenium中的webdriver属性给隐藏才行。然后跟着其他大佬的教程改了一下,大部分都是说在访问之前添加这句代码
Object.defineProperty(navigator, 'webdriver', { get: () =>undefined })
然后我跟着做,结果发现还是不能隐藏。
在这里插入图片描述
然后我在虚拟机中尝试了一下,发现可以,结果是undefined,看了下浏览器版本,还是7+,所以就想着应该是浏览器版本的问题,但是吧,给降了重装就太费劲了。
后来在崔大大的文章中找了答案,88版的chrome。在执行之前添加一句:

chrome_options.add_argument("--disable-blink-features=AutomationControlled")

在这里插入图片描述
完美隐藏。。。
完整代码如下:

from selenium import webdriver
import time

url = "https://www.baidu.com"
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])# 设置为开发者模式
options.add_argument("--disable-blink-features=AutomationControlled")
browser = webdriver.Chrome(options=options)
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{
    'source':'''Object.defineProperty(navigator, 'webdriver', {
      get: () =>undefined'''
}
)
browser.get('https://www.baidu.com')
time.sleep(20) # 休息一下,自己去look,look有没有隐藏成功
browser.close()
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐