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基础教程之udp端口扫描
Feb 10 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
深入浅析python 协程与go协程的区别
May 09 Python
python getpass模块用法及实例详解
Oct 07 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
python requests模块的使用示例
Apr 07 Python
Python编解码问题及文本文件处理方法详解
Jun 20 Python
Django框架中表单的用法
Jun 10 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
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
jquery插件开发注意事项小结
2013/06/04 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
python计算auc的方法
2020/09/09 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
python3实现飞机大战
2020/11/29 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
大班开学家长寄语
2014/04/04 职场文书
汽修专业自荐信
2014/07/07 职场文书
工程造价专业求职信
2014/07/17 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
2019财务转正述职报告
2019/06/27 职场文书