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内置函数dir详解
Apr 14 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python计时相关操作详解【time,datetime】
May 26 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python如何基于redis实现ip代理池
Jan 17 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
QML用PathView实现轮播图
Jun 03 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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和MySql来与ODBC数据连接
2006/10/09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
PHP获取网站域名和地址的代码
2008/08/17 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
linux 下实现python多版本安装实践
2014/11/18 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
平安工地建设方案
2014/05/06 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
宿舍管理制度范本
2015/08/07 职场文书
环保建议书作文500字
2015/09/14 职场文书
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL