有一个js文件,它可以将浏览器的几十种特征隐藏,在selenium打开任何页面之前,先使用execute_cdp_cmd方法运行这个js文件
参考资料
参考资料
使用selenium访问这个网站 https://bot.sannysoft.com/ 它会显示有哪些特征被检测出
不运行js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import time from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options
options = Options() options.add_argument('--headless') options.add_argument( 'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')
driver = Chrome(options=options)
driver.get('https://bot.sannysoft.com/') time.sleep(5)
driver.save_screenshot('./a.png')
source = driver.page_source with open('./b.html', 'w') as f: f.write(source)
|
标红的是被检测出来的特征

运行js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import time from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options
options = Options() options.add_argument('--headless') options.add_argument( 'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')
options.add_argument("--disable-blink-features=AutomationControlled")
driver = Chrome(options=options)
with open('./stealth.min.js') as f: js = f.read() driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": js })
driver.get('https://bot.sannysoft.com/') time.sleep(5)
driver.save_screenshot('./a.png')
source = driver.page_source with open('./b.html', 'w') as f: f.write(source)
driver.quit()
|
可以看到很多特征已被隐藏

下载js文件
下载链接:stealth.min.js
解压密码:gyqsdbd