python+selenium 简易地疫情信息自动打卡签到功能的实现代码


Posted in Python onAugust 22, 2020

由于学校要求我们每天都要在官网打卡签到疫情信息,多多少少得花个1分钟操作,程序员的尊严告诉我们坚决不能手动打卡。正巧最近学了selenium,于是画了个5分钟写了个自动打卡签到地小程序。

测试环境:python3.7 , selenium,chrome浏览器

seleium和chromedriver的配置在这里就不讲了,这里放个连接

首先找到学校信息门户的登录页:

http://my.hhu.edu.cn/login.portal

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

#导入selenium中的webdriver
from selenium import webdriver
import time
url = 'http://my.hhu.edu.cn/login.portal' #信息门户的登陆页面
driver = webdriver.Chrome() # 初始化一个Chrome的驱动
driver.get(url) # 让自动化模块控制的Chrome浏览器跳转到信息门户登陆页面

这时候就该模拟登录了,首先找到用户名的input框。按ctrl+shift+c,打开开发者工具,点击用户名右边的input框,即可在右边的开发者工具中找到input框对应的代码。

python+selenium 简易地疫情信息自动打卡签到功能的实现代码
python+selenium 简易地疫情信息自动打卡签到功能的实现代码

右击该模块,点击copy->copy Xpath 。(Xpath是用来定位该input控件位置的)

root = '' #赋值自己的用户名
password = '' # 赋值自己的密码
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root) #将xpath赋值在前面的括号中,通过send_keys方法给input赋值

#类似的,赋值密码框的xpath,赋值密码
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)

账号密码输完了,就该点击登陆了。按ctrl+shift+c,点击登录按钮,在右边的开发者工具对应的代码块右键copy->copy xpath,获得button的xpath。

driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
#通过click方法点击登录框,跳转到登陆后的页面

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

在登陆后的页面中,找到了健康上报的功能框。点击该功能框,发现页面跳转到了签到页面:

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

复制该页面的网址,让程序在登陆后跳转到该页面:

form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)

让程序点击“本科生健康打卡:

driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()

会跳转到以下的页面

python+selenium 简易地疫情信息自动打卡签到功能的实现代码

点击提交,即完成签到

driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

完整的程序:

from selenium import webdriver
import time
root = ''
password = ''
url = 'http://my.hhu.edu.cn/login.portal'
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)
driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()
driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

总结

到此这篇关于python+selenium 简易地疫情信息自动打卡签到功能的实现代码的文章就介绍到这了,更多相关python selenium自动打卡签到内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
Python用Bottle轻量级框架进行Web开发
Jun 08 Python
如何利用Fabric自动化你的任务
Oct 20 Python
快速了解Python中的装饰器
Jan 11 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
对python使用http、https代理的实例讲解
May 07 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
python中如何使用分步式进程计算详解
Mar 22 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
python tkinter图形界面代码统计工具
Sep 18 Python
python 写一个水果忍者游戏
Jan 13 Python
Python+OpenCV实现在图像上绘制矩形
Mar 21 Python
python进度条显示之tqmd模块
Aug 22 #Python
python 常见的排序算法实现汇总
Aug 21 #Python
Python制作数据预测集成工具(值得收藏)
Aug 21 #Python
简述 Python 的类和对象
Aug 21 #Python
DRF框架API版本管理实现方法解析
Aug 21 #Python
Django rest framework分页接口实现原理解析
Aug 21 #Python
Python -m参数原理及使用方法解析
Aug 21 #Python
You might like
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
python实现员工管理系统
2018/01/11 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
八一建军节感言
2014/02/28 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
归途列车观后感
2015/06/17 职场文书
疾病证明书
2015/06/19 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL