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

时间:2017-11-19 08:18:20

标签: python python-3.x selenium headless google-chrome-headless

如何模拟或设置Selenium chrome无头的插件长度?我正在关注此guide

我无法通过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()

如下所示,插件长度仍然可以检测到。

enter image description here

这可能还是仅限于硒蟒?

1 个答案:

答案 0 :(得分:0)

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

这是 plugins.length 的解决方案

author 在帖子中提到的解决方案。 我确认它运行良好。