如何在chromedriver中禁用"navigator.webdriver"?



经过数小时的方法搜索,我找不到任何简单可行的方法。

我能找到的唯一方法是将"pageLoadingStrategy"功能值设置为"渴望",然后立即执行一些javascript,以便在页面呈现之前更改navigator.webdriver值。但是,您需要在每次请求后更改值,这并不是真正可靠的。

在执行任何请求之前,如何设置此项?有一面旗帜吗?

在查看chrome源代码一段时间后,我终于弄清楚了需要使用什么标志来禁用navigator.webdriver的麻烦。

这是启动chromedriver时需要使用的标志。它甚至完全禁止显示"webdriver=true"。:(

--disable-blink-features=AutomationControlled

此外,这里还有一些可以启用/禁用的功能。

特点

Enable Flag:
--enable-blink-features=example1,example2,example3
Disable Flag
--disable-blink-features=example1,example2,example3

希望这能帮助同样遇到这个问题的人。谢谢你看

from selenium.webdriver import Chrome
driver = Chrome('./chromedriver')
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get('https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html')

chrome版本80的成功。

相关内容

  • 没有找到相关文章

最新更新