chrome浏览器88版本隐藏webdriver方法
隐藏webdriver最近不小心把chrome浏览给升级了,然后前几天有用到selenium去访问某宝。就除了一些问题,,,然后找了半天原因,说是要把selenium中的webdriver属性给隐藏才行。然后跟着其他大佬的教程改了一下,大部分都是说在访问之前添加这句代码Object.defineProperty(navigator, 'webdriver', { get: () =>unde
·
隐藏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()
更多推荐
已为社区贡献2条内容
所有评论(0)