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程序实例(通讯录)
Nov 29 Python
自己使用总结Python程序代码片段
Jun 02 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
django1.11.1 models 数据库同步方法
May 30 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
python3.6实现学生信息管理系统
Feb 21 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
Python流程控制常用工具详解
Feb 24 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 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
PHP语法速查表
2007/01/02 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
PHP chr()函数讲解
2019/02/11 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python操作MongoDB基础知识
2013/11/01 Python
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
更夫岗位责任制
2014/02/11 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS