• Selenium真正绕过webdriver检测


    一、什么是真正绕过浏览器检测?
    . https://bot.sannysoft.com这是chrome的真正检测网址。

    为什么要强调绕过webdriver属性检测?
    有些网址通过webdriver检测使得Selenium无法获取元素、无法控制按钮等情况

    1、PC环境打开chrome的效果 

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

    2、普通的启动webdriver

    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service


    class WebDriverChrome(object):
    def __init__(self):
    self.driver = self.StartWebdriver()

    def StartWebdriver(self):
    s = Service('../lib/chromedriver.exe')
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option("useAutomationExtension", False)
    driver = webdriver.Chrome(service=s, 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()

    第一种:Js注入绕过webdriver的检测属性

    1、Js注入真正绕过webdriver的检测属性。为什么我注入的js属性有效?
    该js文件是pyppetter中绕过webdriver检测所用到的现在直接导入到Selenium启动的chrome中
    上码:

    安装node.js
    npx extract-stealth-evasions
    就会在你执行命令的文件夹下面生成一个stealth.min.js文件

    第二种:使用 undetected_chromedriver

    undetected_chromedriver

    安装:pip install undetected-chromedriver

    使用方法

    undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。

    import undetected_chromedriver asuc

    driver = uc.Chrome ()

    driver.get(' https: //nowsecure.nl')

  • 相关阅读:
    深入理解网卡配置bond的意义和作用
    关于B站UP主墨茶official逝世的感想
    Python内置函数学习笔记
    Python学习笔记(4)
    测试工作中不可忽略的点
    Python学习笔记(3)
    Python学习笔记(2)
    Python学习笔记(1)
    docker-compose部署
    Xtrabackup源码安装
  • 原文地址:https://www.cnblogs.com/Wl55387370/p/16553574.html
Copyright © 2020-2023  润新知