2021最新Selenium真正绕过webdriver检测

看过非常多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文件,拷贝后再使用的,同时我也提供了csdn下免费的下载方式,因为资源无法直接免费下载,为了不耗费大家的C币,关注我成为粉丝就能下载了

在这里插入图片描述
待审核通过后,我会在评论附上链接

  • 40
    点赞
  • 168
    收藏
    觉得还不错? 一键收藏
  • 123
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 123
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值