python实现自动打卡的示例代码
作者:阳光中的影子 发布时间:2022-11-29 15:01:57
标签:python,自动,打卡
自己也百度了一下,然后写的,分为了三个部分,见三段代码
代码:主程序代码
import timefrom selenium import webdriverfrom private_info import *
import send_mail
def signin_and_email():
#谷歌浏览器驱动的位置
driver=webdriver.Chrome("D:/...../chromedriver")
driver.get('http://****.edu.cn/login.portal') #通过id找到填写用户名及密码的地方 并填入
driver.find_element_by_id("username").send_keys(User.uid)
driver.find_element_by_id("password").send_keys(User.pwd) #点击登录
driver.find_element_by_name("login").click()
#通过下面第二行代码定位当前的页面,下面第一行代码不可以省去(初学selenium,所以我一直定位到当前页面再去定位的)#下面这一段根据自己的需要来写
time.sleep(1)
middle_window=driver.current_window_handle
#定位当前页面后仍然用driver
driver.get("http://form.***.edu.cn/pdc/form/list")
time.sleep(1)
middle_window=driver.current_window_handle
#定位当前页面后仍然用driver
driver.get("http://form.***.edu.cn/pdc/formDesignApi/S/gUTwwojq")
time.sleep(1)
middle_window=driver.current_window_handle #点击提交
driver.find_element_by_id("saveBtn").click()
#提交后给用户发送邮件提醒
send_mail.mail()
'''打卡成功后为用户发送邮件代码'''import smtplib
from email.mime.text import MIMEText
from private_info import *
def mail():
#设置邮件内容 用的是之前返回的提示信息
#注意以下内容的格式
#可以设置多个用户 此处我只设置了一个用户
mail_host="smtp.163.com"
mail_user=User.email
mail_pass=User.email_pwd
sender=User.email
receivers=[User.receiver]
content = '打卡成功!'
title = '今日健康打卡已成功' # 邮件主题
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
except smtplib.SMTPException as e:
#个人信息class User:
uid="........"#用户账号
pwd="........"#用户密码
email="........."#发件邮箱
email_pwd="........"#这里的密码是授权码
receiver='........'#收件邮箱
def __init__(self,uid,pwd,email,email_pwd):
#私有
self.uid=uid
self.pwd=pwd
self.email=email
self.email_pwd=email_pwd
self.receiver=receiver
来源:https://www.cnblogs.com/yz-lucky77/p/13765180.html


猜你喜欢
- 1、添加依赖<dependency><groupId>com.baomidou</groupId><
- 简化了一下 YUI3 中的沙箱实现 方式:if (typeof Sandbox === 'undefined' || !Sa
- 目录1. 递归函数与回溯深搜的基础知识2. 求子集 (LeetCode 78)3. 求子集2 (LeetCode 90)4. 组合数之和(L
- 常用时间转换及处理函数:import datetime# 获取当前时间d1 = datetime.datetime.now()print d
- <div id=article><img height="800" alt=""
- 学校有一、二、三。。。。至十班。假设每个班上有30名学生。张、李、刘、苏等现有这样的表 student ,字段 class 及name 。其
- MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实A
- 登录SYS创建临时表空间/*创建临时表空间 */create temporary tablespace 表空间名 t
- 利用Object.defineProperty进行数据劫持代码如下<!DOCTYPE html><html lang=&q
- 解决方法一: mysql安装时候的编码, 看下my.ini,有无 [mysql] default-character-set=utf8 [c
- Django中如何在Model保存前做一定的固定操作,比如写一句日志?关键词: 信号利用Django的Model的Signal Dispat
- 今天研究了下Python中的传值问题,通常在C、C++中有按值传递和按引用传递两种情况,按值传递时会拷贝实参,而按引用传递时只是给形参赋了一
- 有时候我们用的一些pdf资料是没有目录的,这样找寻我们想到的东西比较麻烦。本篇文章就为大家带来python来生成pdf目录书签的方法。首先,
- 指定路径斜杠与反斜杠的问题报错:SyntaxError: (unicode error) ‘unicodeescape&
- 目录图片验证码登陆点击个人用户登录获取图片验证码识别并登陆识别较复杂验证码算法其他上一篇介绍了使用python模拟登陆网站,但是登陆的网站都
- MySQL数据库线程缓冲池的相关知识是本文我们主要要介绍的内容,MySQL数据库支持线程缓存,在多线程连接模式下,如果连接断开后,将这个线程
- 1.0 新建项目1.1 初始化项目输入npm init,之后需要填什么就写什么新建src目录,并在src目录下新建alert.vue$ np
- 一、数据类型在tf中,数据类型有整型(默认是int32),浮点型(默认是float32),以及布尔型,字符串。二、数据类型信息①.devic
- 错误信息这是新建一个项目还原问题,node简单写了个数据返回关键代码const express = require('express
- 现在很多地方都需要用到关键词过滤功能。比如一般的服务器都不允许一些词出现在网页上,站长有时候会对在本网站发布信息的内容进行一个广告过滤等。雨