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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
python迭代器与生成器详解
Mar 10 Python
python实现简单登陆流程的方法
Apr 22 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
python 字符串追加实例
Jul 20 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
pandas数据处理之绘图的实现
Jun 15 Python
keras得到每层的系数方式
Jun 15 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
一个php作的文本留言本的例子(四)
2006/10/09 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
实现PHP搜索加分页
2016/10/12 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python创建临时文件夹的方法
2015/07/06 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python 一句话生成字母表的方法
2019/01/02 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
Python hashlib模块的使用示例
2020/10/09 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
html5的canvas方法使用指南
2014/12/15 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
销售助理岗位职责
2014/02/21 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android