python+selenium 脚本实现每天自动登记的思路详解


Posted in Python onMarch 11, 2020

最近受疫情影响,学校要求每天必须进行健康登记,而我身处大山深处,身体健康,足不出户,奈何总是容易忘记,遂决定手撸一个自动登记的小程序,仅供学习交流之用,话不多说,直接上代码。
配置:Chrom python3.7 selenium库,webdriver等
基本思路,使用selenium模拟浏览器自动登录,需要解决验证码的提取,嵌套表单的提取,弹窗处理,异常处理。
为了防止大家用此网站测试,搞垮服务器,关键网址我已隐藏。

import selenium.webdriver 
import time
from bs4 import BeautifulSoup
from selenium.webdriver.common.keys import Keys
driver = selenium.webdriver.Chrome()

url = '你的url'
driver.get(url)
source = driver.find_element_by_xpath('//p[@class="mb-md-5 mb-3 welcome-para"]/a')
#source.get_attribute('href').click()
ur2 = source.get_attribute('href')
driver.get(ur2)#来到登录界面
time.sleep(10)
html = driver.page_source
bs = BeautifulSoup(html,"html.parser")
s = bs.findAll(name='div')[14].text[3:7] #获得验证码
time.sleep(5)
#输入用户名,密码,验证码
driver.find_element_by_name("username").send_keys(你的账号)
driver.find_element_by_name("userpwd").send_keys(你的密码)
driver.find_element_by_name("code").send_keys(s)
driver.find_element_by_name("login").click()
time.sleep(5)
#这里是解决页面跳转问题,用了笨办法
url3='你的url'
driver.get(url3)
time.sleep(5)
driver.switch_to.frame('leftFrame')
html = driver.page_source
bs = BeautifulSoup(html,"html.parser")
url4 = 'https://xsswzx.cdu.edu.cn:81/isp/com_user/'
url5 = bs.findAll('a')[43].get('href')
url6=url4+url5
driver.get(url6)
time.sleep(5)
driver.find_element_by_xpath('//input[@value="【一键登记:无变化】"]').click()
dig_alert = driver.switch_to.alert
dig_alert.accept()
time.sleep(5)
try:
 dig_alert = driver.switch_to.alert
 dig_alert.accept()
except:
 pass
time.sleep(10)
try:
 driver.find_element_by_xpath('//input[@value="退出系统"]').click()
except:
 driver.close()
print("登记成功")

执行此程序就可以实现登记了,但是并没有实现每天自动登记,下面我们结合Windows通过Anaconda定时调用python脚本,实现每天定时自动登记。
首先编写一个bat脚本:
#此处为引用别人的内容,参考链接:
https://zhuanlan.zhihu.com/p/50057040

python+selenium 脚本实现每天自动登记的思路详解
python+selenium 脚本实现每天自动登记的思路详解

配置好bat文件后

python+selenium 脚本实现每天自动登记的思路详解
python+selenium 脚本实现每天自动登记的思路详解

为了使电脑在关机的情况下也能自己开机启动此程序(万一你睡过头了呢,对吧),我们配置如下:

python+selenium 脚本实现每天自动登记的思路详解
python+selenium 脚本实现每天自动登记的思路详解
python+selenium 脚本实现每天自动登记的思路详解

点击确定,至此大功告成。

知识点补充:Python实现自动填写网安早上登记信息

放在这里以后还可以参考!!!

from selenium import webdriver
import time
import schedule

def auto_click():
  var1 = 0
  file = open('1.txt', 'r')
  list1 = []
  for num in file:
    list1.append(num)
  list1 = list(map(int, list1))
  while var1 < len(list1):
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(10)
    driver.get('http://acm.scu.edu.cn/student/weui/sars2.html?from=singlemessage')
    driver.find_element_by_xpath('//*[@id="number"]').send_keys(list1[var1])
    driver.find_element_by_xpath('//*[@id="showTooltips"]').click()
    time.sleep(5)
    driver.quit()
    var1 += 1
schedule.every().day.at('16:19').do(auto_click)
while True:
  schedule.run_pending()
  time.sleep(1)

到此这篇关于python+selenium 脚本实现每天自动登记的思路详解的文章就介绍到这了,更多相关python selenium 每天自动登记内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现删除文件但保留指定文件
Jun 21 Python
python创建临时文件夹的方法
Jul 06 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Python之re操作方法(详解)
Jun 14 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
python学习基础之循环import及import过程
Apr 22 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
python实现将汉字保存成文本的方法
Nov 16 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
python实现经典排序算法的示例代码
Feb 07 Python
Django+boostrap 美化admin后台的操作
Mar 11 #Python
Windows 下python3.8环境安装教程图文详解
Mar 11 #Python
django admin后管定制-显示字段的实例
Mar 11 #Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 #Python
屏蔽Django admin界面添加按钮的操作
Mar 11 #Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 #Python
python实现飞机大战项目
Mar 11 #Python
You might like
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
浅谈js中的this问题
2017/08/31 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
小程序实现多列选择器
2019/02/15 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python类中self参数用法详解
2020/02/13 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
Why we need EJB
2016/10/20 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
总经理助理工作职责
2014/02/06 职场文书
大型晚会策划方案
2014/02/06 职场文书
工程质量承诺书范文
2014/03/27 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
情人节活动总结范文
2015/02/05 职场文书
安全教育第一课观后感
2015/06/17 职场文书
高三物理教学反思
2016/02/20 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python