Python结合Selenium实现自动打卡并发送邮件通知
本文介绍使用Python和Selenium库实现网页自动打卡的完整方案。通过模拟浏览器登录、填写信息并提交表单,结合SMTP协议发送成功通知邮件。文章包含主程序、邮件发送模块及个人信息配置类的完整代码示例,适用于高校或企业日常健康打卡场景,帮助开发者快速掌握Web自动化与邮件集成技巧。
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
以上即为使用Python实现自动打卡的完整示例代码。如需了解更多关于Python自动化工具的使用技巧,欢迎持续关注本站发布的其他相关文章。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













