zoukankan      html  css  js  c++  java
  • python selenium 获取UA 睁yan

    import time,sys
    from selenium  import webdriver
    
    from selenium.webdriver.chrome.options import Options
    
    
    
    def get_cookie():
        options = webdriver.ChromeOptions()
        options.add_argument(' headless')
        options.add_argument(' no-sandbox')
        options.add_experimental_option('w3c', False)  # 获取linux 获取UA ,日志报错解决
    
        url = 'https://www.cnvd.org.cn/flaw/show/CNVD-2021-93994'
        caps = {
            'browserName': 'chrome',
            'loggingPrefs': {
                'browser': 'ALL',
                'driver': 'ALL',
                'performance': 'ALL',
            },
            'goog:chromeOptions': {
                'perfLoggingPrefs': {
                    'enableNetwork': True,
                },
                'w3c': False,
            },
        }
        # windows linux
        if sys.platform=='win32':
            print('windows 系统')
            driver = webdriver.Chrome(desired_capabilities=caps) # desired_capabilities=caps 解决获取UA异常
        else:
            print('否则 linux')
            options = webdriver.ChromeOptions()
            options.add_argument(' headless')
            options.add_argument(' no-sandbox')
            options.add_experimental_option('w3c', False)  # 获取日志报错解决
            driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver',options=options,desired_capabilities=caps)
        
        # 解决访问cnvd 没有网络
        driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
            "source": """
              Object.defineProperty(navigator, 'webdriver', {
                get: () => undefined
              })
            """
        })
        driver.get(url)
        import json
        try:
            logs = [json.loads(log['message'])['message'] for log in driver.get_log('performance')]
        except:
            print('获取UA异常')
        # print(type(logs))
        if logs:
            for i in logs:
                if i.get('params').get('headers'):
                    UA = i.get('params').get('headers').get('User-Agent')
                    print(UA)
                    break
        driver.refresh()
        # print(dir(driver.get_log))
        time.sleep(10)
        cookies = ""
        for cookie in driver.get_cookies():
            cookies += u"%s=%s; " % (cookie["name"], cookie["value"])
        print(cookies)
        driver.close()
        
    get_cookie()
    
    
    

      

  • 相关阅读:
    java 技术社区!!
    有关 gridview的 (做东西 容易忘记 记下!)
    【C#复习之虚方法vs抽象类】08.4.3 上午
    高分求解答!!!
    【学习笔记】asp.net MVC!
    asp.net ajax 尝试 之很好很强大!08.4.4
    Linux流量监控工具 – iftop (最全面的iftop教程)
    linux下查看某目录占用的空间大小
    基于CentOS的Linux基本网络配置,包括网卡eth0、DNS、Host等
    ubuntu安装ssh服务
  • 原文地址:https://www.cnblogs.com/zhangshijiezsj/p/15699312.html
Copyright © 2011-2022 走看看