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性能优化的20条建议
Oct 25 Python
通过Python来使用七牛云存储的方法详解
Aug 07 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
python基础教程项目四之新闻聚合
Apr 02 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python序列类型种类详解
Feb 26 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
PyMongo 查询数据的实现
Jun 28 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
老生常谈js数据类型
2017/08/03 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
硕士研究生求职自荐信范文
2014/03/11 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
python中使用redis用法详解
2022/12/24 Redis