在edge浏览器中使用webdriver时控制台中window.navigator.webdriver 元素会显示True,正常情况下来说应该是关掉的,所以我们用js来屏蔽掉这个元素
from selenium import webdriver
from selenium.webdriver.edge.options import Options
opt = Options()
# 去掉浏览器爬虫标识
opt.add_experimental_option('excludeSwitches', ['enable-automation'])
# 模拟iphone X浏览器,用不到可忽略
opt.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'})
# 以下两行是无头浏览器
opt.add_argument("--headless")
opt.add_argument("--disable-gpu")
driver = webdriver.Edge(options=opt)
# 将浏览器窗口最大化
driver.maximize_window()
driver.get('http://www.xxx.com.cn')
js = '''Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})'''
driver.execute_script(js)