Selenium 反爬虫之跳过滑块验证

发表于:2022-11-30 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Harden13    来源:CSDN

  淘宝有自己对selenium的验证,在使用selenium自动化登录淘宝时,往往会出现滑块验证失败问题。
  原因
  首先很多熟悉JS的人都知道淘宝会检测window.navigator.webdriver(js检测特征之一)。
  观察一下他的全局JS,(这个是我参考别人的思路)你会发现淘宝在你浏览器内置的JS中有这么一段代码。
  就是这个标黄色的东西,window.navigator.webdriver控件检测到你是selenium进入!那我们接下来就需要干掉他。
  解决方法
  具体就是 你需要关把window.navigator.webdriver设为"undefined"。
  需要你在使用selenium自动化启动浏览器前加入这一段代码
  # chrome的版本号小于88,在你启动浏览器的时候(此时没有加载任何网页内容),向页面嵌入js代码,去掉webdriver。
  driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",  {
      "source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
      })
   
  # chrome的版本大于等于88
  option = Options()
  option.add_experimental_option('excludeSwitches', ['enable-automation']
  option.add_argument('--disable-blink-features=AutomationControlled')
  web = Chrome(options=option)
  加上这个代码可以关闭开发者模式。
  这样我们就可以解决selenium被检测到导致不能登录。据我所了解,大部分的window.navigator.webdriver控件检测都可以用这两个代码绕过检测。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号