【问题标题】:is using a debugging browser detectable?是否可以检测到使用调试浏览器?
【发布时间】:2021-08-01 20:44:40
【问题描述】:

我只是想知道对于我们使用调试模式浏览器的网页是否可以检测到,如下面的代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# already opened a browser in debugging mode at port 8989

opt = Options()
opt.add_experimental_option('debuggerAddress', 'localhost:8989')
driver=webdriver.Chrome(executable_path="my driver path", chrome_options=opt)
driver.get('http://google.com')

【问题讨论】:

  • 这不是微不足道的,但它是可以检测到的。
  • @KlausD。 ,我其实想知道这种方法是否比使用普通硒更好,用于打开对自动化软件敏感且具有机器人检测系统的网页,是吗?
  • 也许这个帖子可以帮助你stackoverflow.com/questions/66989755/…

标签: python selenium


【解决方案1】:

是的,Selenium 很容易被检测到,尤其是被所有主要的反僵尸程序提供商(Cloudflare、Akamai 等)检测到。

为什么?

  1. Selenium 和大多数其他主要 Web 驱动程序将名为 navigator.webdriver 的浏览器变量(网站可以访问)设置为 true。您可以通过前往 Google Chrome 控制台并运行 console.log(navigator.webdriver) 自行检查。如果您使用的是普通浏览器,则为 false。

  2. 用户代理,通常所有设备都有所谓的“用户代理”,这是指访问网站的设备。 Selenium 的用户代理看起来像这样:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/59.0.3071.115 Safari/537.36。你抓到了吗?包含HeadlessChrome,这是另一种检测途径。

这些只是检测 Selenium 浏览器的多种方法中的两种,我强烈建议您阅读 thisthis

最后,如果您想要一个简单、直接的解决方案来绕过检测,它几乎实现了我们讨论过的所有这些概念,我建议您使用undetected-chromedriver。这是一个开源项目,它尽最大努力使您的 Selenium chromedriver 看起来像人类。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 2013-02-03
    • 2016-01-02
    • 2012-01-18
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2011-11-01
    • 2010-10-02
    相关资源
    最近更新 更多