最简单的易班打卡脚本 您所在的位置:网站首页 易班易学工为什么打不开 最简单的易班打卡脚本

最简单的易班打卡脚本

2023-10-13 18:35| 来源: 网络整理| 查看: 265

最简单的易班打卡脚本 易班web自动化打卡脚本 分析 实现过程 环境搭建 定位元素 获取cookies 使用cookies 定时启动脚本 完整代码

易班web自动化打卡脚本

一直以来,易班打卡被称为最鸡肋,最浪费时间,最浪费纳税人钱财的表面工程,那么如何解决这一问题,已成为现在高校大学生的急需思考的大问题。那这一次我就来谈谈我是怎么解决这一问题的。

分析

众所周知,学生虽然使用较多的是易班APP,但是,善良的易班还做了网页端。刚好前不久我学习了一点儿web自动化技术,正好拿来练练手。 先来看看易班的登录界面,它使用了验证码,然而,图形验证码就是专门克制机器操作的,所以验证码只能使用人为识别。那该如何实现自动登录呢? 在这里插入图片描述 我们发现,登录一次之后,再次打开页面就会自动登录,原来易班记录了用户的cookies。 没错,你猜对了!我就是保存cookies,每次登录都更换cookies,以实现多用户登录打卡。

实现过程 环境搭建

网上有很多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了) 在这里插入图片描述

获取cookies

一段非常简单的代码,跑跑看

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 实验室设备网 版权所有