zoukankan      html  css  js  c++  java
  • cnvd 获取最新cookie (反爬) 睁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()
    import  sys,os
    
    sys.path.append(os.getcwd()[:os.getcwd().index('cnvd')])
    print(sys.path)
    

      

  • 相关阅读:
    mysql 远程连接数据库的二种方法
    安装mysql-5.7.12-winx64
    快速提升word文档编写质量
    查看linux系统版本命令汇总
    SpringMVC+mybatis+maven+Ehcache缓存实现
    linux下的java开发环境
    appium 常用api介绍(2)
    appium 常用api介绍(1)
    appium入门
    Mysql5.7服务下载安装
  • 原文地址:https://www.cnblogs.com/zhangshijiezsj/p/15699331.html
Copyright © 2011-2022 走看看