如何为 Chrome Headless 模仿或设置插件

6 python selenium headless python-3.x google-chrome-headless

如何为 Selenium chrome 无头模拟或设置插件长度?我正在遵循本指南

我无法通过 Chrome 选项找到任何有关执行此操作的信息。

我想要这个的原因是我想让 chrome 无头尽可能无法检测。

请尝试以下操作。插件长度仍然是一个问题。

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
options = Options()
options.add_argument("--headless");
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3240.0 Safari/537.36'
options.add_argument(f'user-agent={user_agent}')
options.add_argument("--lang=en-US,en");

driver = webdriver.Chrome(chrome_options=options)

driver.get('https://intoli.com/blog/making-chrome-headless-undetectable/chrome-headless-test.html')
driver.save_screenshot("screenshot5.png")

driver.close()
Run Code Online (Sandbox Code Playgroud)

正如你在下面看到的,插件长度仍然是可以检测到的。

在此处输入图片说明

这是可能的还是只是 selenium python 的限制?

小智 1

driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
  "source": "
     Object.defineProperty(navigator, 'plugins', {
       get: () => [1, 2, 3, 4, 5]
     });
"})
Run Code Online (Sandbox Code Playgroud)

这是plugins.length的解决方案

作者在帖子中提到了解决方案。我确认它工作完美。