Selenium 与 Firefox 88 对 navigator.webdriver 进行了更改

soi*_*oes 8 python firefox selenium web-scraping selenium-webdriver

最新版本的 Firefox 88 包含一个错误修复,如果浏览器通过 marionette 协议运行,则用户无法将 navigator.webdriver 属性设置为 false。不幸的是,如果站点使用 Cloudflare 的 DDOS 保护之类的服务(该服务检查远程浏览器上的属性并陷入无限循环而不是重定向到所请求的页面),这实际上会导致某些 Web 抓取活动无法进行。

有谁知道现在有一种替代方法吗?

profile.set_preference("dom.webdriver.enabled", False)
Run Code Online (Sandbox Code Playgroud)

或者

profile.set_preference("useAutomationExtension", False)
Run Code Online (Sandbox Code Playgroud)

现在有没有效果?

具体来说,我将 Selenium 与 Python 绑定一起使用,但我想使用任何框架的解决方法都可以适用于我的情况。

小智 1

我尝试向 Firefox 添加扩展,该扩展会在加载任何其他脚本之前覆盖 navigator.webdriver。看起来它不仅与 navigator.webdriver 有关,还与其他东西有关。

我在 document_start 上执行了以下代码

script = document.createElement("script"); script.type = 'text/javascript'; script.id = "scripttttttt"; script.innerHTML = "Object.defineProperty(navigator, 'webdriver', {get: () => undefined});document.getElementById('scripttttttt').remove();"; document.documentElement.prepend(script);

这足以打开https://ebay-kleinanzeigen.de/m-einloggen.html,但不足以登录 Google 帐户。