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()
  • 相关阅读:
    便签一
    当代大学生存在问题及需求分析
    字符 单词数 行数
    流量管理系统——需求分析
    简单的四则运算
    强大的修图app--美图秀秀
    js 中 setTimeout()的用法
    .net spit 用法
    关闭 Activity 关闭方式 finish(), exit(), killProcess(), restartPackage()(转载)
    Android实现购物车功能
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13538511.html
Copyright © 2011-2022 走看看