修改 navigator.webdriver 标志以防止 Chrome 中的 Selenium 检测
WebDriver 驱动的自动化经常面临检测,网站会采取措施来识别受控制的浏览器。为了防止这种检测,Selenium 提供了一种修改 Chrome 中 navigator.webdriver 标志的方法。
1. execute_cdp_cmd()更新
通过引入execute_cdp_cmd(),您可以使用Selenium执行Google Chrome DevTools命令。这使您能够轻松更改 navigator.webdriver 标志。
2.防止 Selenium 检测
要防止 Selenium 检测,请考虑以下方法:
3.示例代码
结合这些方法,一个有效的 Selenium 代码片段将是:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe') driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'}) print(driver.execute_script("return navigator.userAgent;")) driver.get('https://www.httpbin.org/headers')
4。背景和注意事项
根据 W3C 编辑草案,navigator.webdriver 标志表示用户代理的远程控制。务必谨慎行事,因为修改这些参数可能会阻止导航并突出显示 WebDriver 实例。
以上是如何通过修改 Chrome 中的'navigator.webdriver”标志来防止 Selenium 检测?的详细内容。更多信息请关注PHP中文网其他相关文章!