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进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
python 进程的几种创建方式详解
Aug 29 Python
python-xpath获取html文档的部分内容
Mar 06 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 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字符串过滤与替换小结
2015/01/26 PHP
PHP获取文件行数的方法
2015/06/10 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
python实现目录树生成示例
2014/03/28 Python
python装饰器decorator介绍
2014/11/21 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
区级文明单位申报材料
2014/05/15 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
军训个人总结
2015/03/03 职场文书
大学生党员自我评价
2015/03/04 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android