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之不要红头文件(2)
Sep 28 Python
Python contextlib模块使用示例
Feb 18 Python
Python入门教程之运算符与控制流
Aug 17 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
Python使用while循环花式打印乘法表
Jan 28 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
python文件操作的简单方法总结
Nov 07 Python
python函数声明和调用定义及原理详解
Dec 02 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
java关于string最常出现的面试题整理
Jan 18 Python
python 模块重载的五种方法
Apr 24 Python
Python-typing: 类型标注与支持 Any类型详解
May 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
SONY ICF-F10中波修复记
2021/03/02 无线电
ThinkPHP之R方法实例详解
2014/06/20 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
ant design实现圈选功能
2019/12/17 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
Python struct模块解析
2014/06/12 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
在vscode中配置python环境过程解析
2019/09/28 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
如何使用python写截屏小工具
2020/09/29 Python
C语言变量的命名规则都有哪些
2013/12/27 面试题
敏捷开发的主要原则都有哪些
2015/04/26 面试题
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
南京导游词
2015/02/03 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
感恩的心主题班会
2015/08/12 职场文书
Java获取字符串编码格式实现思路
2022/09/23 Java/Android