zoukankan      html  css  js  c++  java
  • parttwo

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time,os,json

    driver = webdriver.Chrome()
    url = "https://www.cnblogs.com/"
    driver.get(url)
    driver.maximize_window()

    def login():
    driver.find_element_by_xpath('//*[@id="span_userinfo"]/a[1]').click()
    driver.find_element_by_id('LoginName').send_keys('wenjing2019')
    driver.find_element_by_id('Password').send_keys('*****')
    driver.find_element_by_id('submitBtn').click()

    #保存cookies到文件中
    save_cookies_to_file(driver)

    #获取cookies并保存cookies
    def save_cookies_to_file(driver):
    #获取存储cookies的文件夹
    file_path = get_cookies_dir()
    #获取cookies
    cookies = driver.get_cookies()
    #存储cookies到文件中
    with open (file_path +"cnblogs.cookies","w") as f:
    json.dump(cookies,f)


    def get_cookies_dir():
    project_path = os.path.dirname(os.getcwd())
    file_path = project_path + "/cookies/"
    if not os.path.exists(file_path):
    os.mkdir(file_path)
    return file_path


    def check_cookies():
    #设置一个登录状态,初始值是未登录
    login_status = False
    #将cookies信息保存到driver中
    driver = save_cookies_to_driver()

    #进行跳转链接的检测
    driver.get("https://home.cnblogs.com/u/wenjing2019/")

    current_url = driver.current_url
    if current_url == "https://home.cnblogs.com/u/wenjing2019/":
    login_status =True
    return login_status
    else:
    return login_status

    #保存cookies到driver中
    def save_cookies_to_driver():
    cookies_file = get_cookies_file()
    cn_cookies_file = open(cookies_file,"r")
    cn_cookies_str = cn_cookies_file.readline()
    cn_cookies_dict = json.loads(cn_cookies_str)



    #这里必须清除旧的cookies
    driver.get('https://www.cnblogs.com/')
    driver.delete_all_cookies()
    for cookie in cn_cookies_dict:
    driver.add_cookie(cookie)
    return driver

    def get_cookies_file():
    return get_cookies_dir() +"cn.cookies"


    if __name__=="__main__":
    try:
    #循环查看登录状态,判断登录是否成功
    loop_status = True:
    while loop_status:
    #检验cookies是否生效
    login_status = check_cookies()
    if login_status:
    loop_status = False #跳出循环
    else:
    login()
    #跳转页面
    to_page(driver)
    finally:
    time.sleep(2)
    driver.quit()

  • 相关阅读:
    说一说javascript的异步编程
    Flink 整合 Nacos,让 Flink 作业配置动态更新不再是难事
    Flink 整合 Apollo,动态更新 Flink 作业配置
    一文让你彻底了解大数据实时计算引擎 Flink
    《大数据实时计算引擎 Flink 实战与性能优化》新专栏
    滴滴实时计算发展之路及平台架构实践
    Flink 从 0 到 1 学习 —— Flink Data transformation(转换)
    Flink Connector 深度解析
    Flink 从 0 到 1 学习 —— Flink 配置文件详解
    vue-cli3如何配置 eslint 及配合 vscode 自动保存
  • 原文地址:https://www.cnblogs.com/wenjing2019/p/12197072.html
Copyright © 2011-2022 走看看