Pwner's Blog

能全力以赴不尽力而为

0%

Selenium 抹除特征的一些方法

以下方法在某些时候可以抹除写一些 selenium 的自动化特征,使 window.navigator.webdriver 属性重新定义为 undefined 而不是 true。以下方法适用于较新版本的 chromedriver

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
chrome_options = Options()
chrome_options.add_argument('--headless') #无头模式,适用于Linux系统
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
#以下两行为实验性选项用于抹除特征
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=chrome_options)
#重新定义window.navigator.webdriver属性
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
如果文章对你有用,可以请我喝杯咖啡~
  • 本文作者: Pwner
  • 本文链接: https://pwner.cn/posts/54184ad3.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!