2025年4月15日 星期二 乙巳(蛇)年 正月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

最新Selenium真正绕过webdriver检测

时间:04-23来源:作者:点击数:56

看过非常多selenium文章,但能真正绕过的不多!下面为大家实现通过js文件注入达到真正绕过的方法!欢迎点赞关注一键三连!

一、什么是真正绕过浏览器检测?

  • https://bot.sannysoft.com 这是chrome的真正检测网址
  • 为什么要强调绕过webdriver属性检测?
    • 有些网址通过webdriver检测使得Selenium无法获取元素、无法控制按钮等情况

1、PC环境打开chrome的效果

在这里插入图片描述

一般来说普通的启用webdriver即使也是会标红的,以上是打开本地chrome的检测属性

2、 普通的启动webdriver

  • 上码
  • from selenium import webdriver
  • class WebDriverChrome(object):
  • def __init__(self):
  • self.driver = self.StartWebdriver()
  • def StartWebdriver(self):
  • options = webdriver.ChromeOptions()
  • options.add_argument("start-maximized")
  • options.add_experimental_option("excludeSwitches", ["enable-automation"])
  • options.add_experimental_option("useAutomationExtension", False)
  • driver = webdriver.Chrome(options=options)
  • return driver
  • def RunStart(self):
  • self.driver.get('https://bot.sannysoft.com')
  • # time.sleep(10)
  • # self.driver.quit()
  • if __name__ == '__main__':
  • Crawl = WebDriverChrome()
  • Crawl.RunStart()
在这里插入图片描述

3、Js注入真正绕过webdriver的检测属性

为什么我注入的js属性有效?

  • 该js文件是pyppetter中绕过webdriver检测所用到的
    现在直接导入到Selenium启动的chrome中
    关键的js文件我放在了文末
    上码:
  • from selenium import webdriver
  • class WebDriverChrome(object):
  • def __init__(self):
  • self.driver = self.StartWebdriver()
  • def StartWebdriver(self):
  • options = webdriver.ChromeOptions()
  • options.add_argument("start-maximized")
  • options.add_experimental_option("excludeSwitches", ["enable-automation"])
  • options.add_experimental_option("useAutomationExtension", False)
  • driver = webdriver.Chrome(options=options)
  • with open('./stealth.min.js') as f:
  • js = f.read()
  • driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  • "source": js
  • })
  • return driver
  • def RunStart(self):
  • self.driver.get('https://bot.sannysoft.com')
  • # time.sleep(10)
  • # self.driver.quit()
  • if __name__ == '__main__':
  • Crawl = WebDriverChrome()
  • Crawl.RunStart()
在这里插入图片描述

js注入的文件[stealth.min.js]

  • 命名不统一要求能读取就可以了
  • 获取方式:
    • 安装node.js
      • npx extract-stealth-evasions

就会在你执行命令的文件夹下面生成一个stealth.min.js文件

我是通过everything工具找到改js文件,拷贝后再使用的,同时本站也提供了免费的直接的下载方式(stealth.min.js)。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门