最简单的易班打卡脚本 | 您所在的位置:网站首页 › 易班易学工为什么打不开 › 最简单的易班打卡脚本 |
最简单的易班打卡脚本
易班web自动化打卡脚本
分析
实现过程
环境搭建
定位元素
获取cookies
使用cookies
定时启动脚本
完整代码
易班web自动化打卡脚本
一直以来,易班打卡被称为最鸡肋,最浪费时间,最浪费纳税人钱财的表面工程,那么如何解决这一问题,已成为现在高校大学生的急需思考的大问题。那这一次我就来谈谈我是怎么解决这一问题的。 分析众所周知,学生虽然使用较多的是易班APP,但是,善良的易班还做了网页端。刚好前不久我学习了一点儿web自动化技术,正好拿来练练手。 先来看看易班的登录界面,它使用了验证码,然而,图形验证码就是专门克制机器操作的,所以验证码只能使用人为识别。那该如何实现自动登录呢? 网上有很多webdriver环境搭建的教程,我就不再啰嗦了 定位元素使用google浏览器复制的full xpath driver.find_element_by_xpath("/html/body/div1/div/div[2]/div1").click() 通过full xpath查找网页元素,并且执行点击操作; driver.find_element_by_id(“account-txt”).send_keys("*****") 通过id查找网页元素,并且执行输入操作; 会用这两个方法就够了(这也太low了) 一段非常简单的代码,跑跑看 import selenium.webdriver import time import json lst[] = ["",""] # 分别填上账号和密码 driver = selenium.webdriver.Chrome() driver.implicitly_wait(10) driver.get("http://www.yiban.cn/") driver.delete_all_cookies() # 删除已有cookies print("登录过程需要手动输入验证码") time.sleep(1) driver.get("https://www.yiban.cn/login?go=http%3A%2F%2Fwww.yiban.cn%2F") # 进入登录界面 driver.find_element_by_id("account-txt").send_keys(lst[0]) driver.find_element_by_id("password-txt").send_keys(lst[1]) driver.find_element_by_id("login-btn").click() print("登录过程可能需要手动输入验证码\n完成登录后,键入y,开始提取用户cookies\n无法登录情况下,键入n或其他任意字符,跳过此次提取") dd = input("是否完成登录?(y/n)") if(dd == 'y'): cookies = driver.get_cookies() print("已获取cookies") jsoncookies = json.dumps(cookies) # 将cookies保存到cookies.txt中 with open("cookies.txt", "a+")as f: ss = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) f.write("\n"+ss+"#"+str(lst[0])+"#"+str(lst[1])+"#"+"cookies--->"+jsoncookies) print("cookies已添加在cookies.txt!") else: print("未提取cookies,并跳过此用户") driver.quit() 使用cookies import selenium.webdriver import time import json driver = selenium.webdriver.Chrome() driver.get("http://www.yiban.cn/") driver.implicitly_wait(8) time.sleep(2) line = input("请输入cookies:") cookies = json.loads(line) driver.delete_all_cookies() driver.get( |
CopyRight 2018-2019 实验室设备网 版权所有 |