如何模仿或设置 Chrome Headless 插件
Posted
技术标签:
【中文标题】如何模仿或设置 Chrome Headless 插件【英文标题】:How do I mimic or set plugin for Chrome Headless 【发布时间】:2018-05-02 15:54:24 【问题描述】:如何模拟或设置 Selenium chrome headless 的插件长度?我正在关注这个guide
我找不到通过 Chrome 选项执行此操作的任何内容。
我想要这个的原因是我想让 chrome headless 尽可能地不可检测。
试试下面的。插件长度仍然是个问题。
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()
正如您在下面看到的,插件长度仍然可以检测到。
这是可能的还是仅仅是 selenium python 的限制?
【问题讨论】:
Chrome headless 不允许扩展,这就是您在这里看到的。这是chrome headless本身的限制。 Selenium 对此无能为力 @TarunLalwani 我明白了。我相信有一种方法可以通过文件注入 javascript 来改变这一点,但不太确定我该怎么做。 如果您尝试注入 Js,请在此处查看我在不同内容中的操作方式:[此链接][1] [1]:***.com/a/45194334/8179099 @MosheSlavin 很有趣,虽然没有说明如何用 JS 实现。 Tarun 是对的,这是 chrome headless 的限制 【参考方案1】:driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
"source": "
Object.defineProperty(navigator, 'plugins',
get: () => [1, 2, 3, 4, 5]
);
")
这是 plugins.length 的解决方案
author 在帖子中提到了解决方案。 我确认它工作正常。
【讨论】:
以上是关于如何模仿或设置 Chrome Headless 插件的主要内容,如果未能解决你的问题,请参考以下文章
Selenium Headless Chrome 和语言设置
TestCafe & chrome:headless : 如何强制浏览器语言(语言环境)
python selenium chrome headless中的文件下载路径设置不适用