zoukankan      html  css  js  c++  java
  • Selenium 添加Cookie实现绕过登录流程

    有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了cookie登录的优点了

    创建demo.py

    from selenium import webdriver

    import time

    import json

    #填写webdriver的保存目录

    driver = webdriver.Chrome('../chromedriver.exe')

    #记得写完整的url 包括http和https

    driver.get('https://www.baidu.com')

    #程序打开网页后20秒内手动登陆账户

    time.sleep(30)

    with open('cookies.txt','w') as cookief:

        #将cookies保存为json格式

        cookief.write(json.dumps(driver.get_cookies()))

    driver.close()

    创建demo2.py

    from selenium import webdriver

    import time

    import json

    #填写webdriver的保存目录

    driver = webdriver.Chrome()

    #记得写完整的url 包括http和https

    driver.get('https://www.baidu.com')

    #首先清除由于浏览器打开已有的cookies

    driver.delete_all_cookies()

    with open('cookies.txt','r') as cookief:

        #使用json读取cookies 注意读取的是文件 所以用load而不是loads

        cookieslist = json.load(cookief)

        for cookie in cookieslist:

            driver.add_cookie(cookie)

    # 刷新页面

    driver.refresh()

    解决Cookie时效性字段

    from selenium import webdriver

    import json

    #填写webdriver的保存目录

    driver = webdriver.Chrome('../chromedriver.exe')

    #记得写完整的url 包括http和https

    driver.get('https://www.baidu.com')

    #首先清除由于浏览器打开已有的cookies

    driver.delete_all_cookies()

    with open('cookies.txt','r') as cookief:

        #使用json读取cookies 注意读取的是文件 所以用load而不是loads

        cookieslist = json.load(cookief)

        # 方法1 将expiry类型变为int

        for cookie in cookieslist:

            #并不是所有cookie都含有expiry 所以要用dict的get方法来获取

            if isinstance(cookie.get('expiry'), float):

                cookie['expiry'] = int(cookie['expiry'])

            driver.add_cookie(cookie)

    driver.refresh()

    import time
    import json

    #填写webdriver的保存目录
    driver = webdriver.Chrome('../chromedriver.exe')

    #记得写完整的url 包括http和https
    driver.get('https://www.baidu.com')

    #程序打开网页后20秒内手动登陆账户
    time.sleep(30)

    with open('cookies.txt','w') as cookief:
    #将cookies保存为json格式
    cookief.write(json.dumps(driver.get_cookies()))

    driver.close()
  • 相关阅读:
    poj 1860 Currency Exchange(最短路径的应用)
    poj 2965 The Pilots Brothers' refrigerator
    zoj 1827 the game of 31 (有限制的博弈论)
    poj 3295 Tautology (构造法)
    poj 1753 Flip Game(枚举)
    poj 2109 (贪心)
    poj 1328(贪心)
    Qt 对单个控件美化
    Qt 4基础
    Bash Shell
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13538511.html
Copyright © 2011-2022 走看看