from selenium import webdriver
import time
from pathlib import Path
import smtplib
from email.mime.multipart import MIMEMultipart # 构建多个元素
from email.mime.image import MIMEImage # 构建邮件图片
from email.mime.text import MIMEText # 构建邮件文本
from email.header import Header # 调用header文件
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
须要批改的局部
stu_number = [‘1190200000’] # 输出不同同学的学号,需批改
stu_password = [‘123456789’] # 输出不同同学的明码,需批改
stu_name = [‘xxx’] # 附件加上同学名字首写字母前缀,用以辨别。不必须
from_address = ‘[email protected]’ # 发送方邮箱(本人的邮箱)
password_email = ‘xxxxxxxxxxxxxx’ # 进入qq邮箱->设置->账户->找到stmp服务,点击开启。验证后会给你一个受权码,间接复制,填入下方即可
to_address = [‘[email protected]’] # 收信方邮箱
for i in range(len(stu_number)):
driver=webdriver.Chrome()
driver.maximize_window() # 最大化窗口 # 登录信息 time.sleep(1) username = driver.find_element_by_id('username') # 学号定位 username.send_keys(stu_number[i]) # 输出学号 password = driver.find_element_by_id('password') # 明码定位 password.send_keys(stu_password[i]) # 输出明码 # driver.find_element_by_class_name('icheckbox_square-green').click() # 点击记住明码 password.send_keys(Keys.ENTER) # driver.find_element_by_class_name("auth_login_btn primary full_width").click() # 登录 time.sleep(1) driver.find_element_by_id('mrsb').click() time.sleep(1) driver.find_element_by_xpath("//div[@class = 'right_btn']").click()# 点击新增 time.sleep(3) driver.find_element_by_id('checkbox').click() # 我已仔细阅读并批准 time.sleep(1) driver.find_element_by_xpath("//div[@class = 'right_btn']").click()#点击提交 time.sleep(3) # 延时 driver.find_element_by_xpath("//a[@class = 'weui-dialog__btn primary']").click()#点击确认 time.sleep(3)
上面是给本人发送上报截图的如果不须要,之后的代码能够全副删除。
current_time = time.strftime(stu_name[i]+"%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) # 记录截图工夫,并以该工夫命名 filename = u'.\\image' # [PayPal下载](https://www.gendan5.com/wallet/PayPal.html)新创建门路“.”示意以后整个.py文件的门路所在的地位,“\\”门路宰割符,其中的一个是"\"本义符 pic_path = filename + '\\' + current_time + '.png' if Path(filename).is_dir(): # 判断文件夹是否存在,不存在就新建一个新的 pass else: Path(filename).mkdir() time.sleep(2) driver.save_screenshot(pic_path) # 截取以后url页面的图片,并且将截取的图片保留在指定的门路并以截图工夫命名) print(pic_path) # 打印门路 time.sleep(1) driver.close() # 敞开网页 driver.quit() # 发信服务器 msg = MIMEMultipart('related') # mixed -- 混合型 alternative--文本混合 related--多媒体元素 # 邮件头信息 msg['From'] = Header(from_address) msg['To'] = Header(to_address[i]) msg['Subject'] = Header('每日疫情填报状况', 'utf-8') # 开启发信服务,这里应用的是加密传输 # 注释-图片 通过html格局来放图片,可通过cid 编号实现上传多个图片 mail_msg = ''' <p>今日疫情上报,无需回复。</p> <p>\n\t 上报截图:</p> <p><img src="cid:image1"></p> ''' msg.attach(MIMEText(mail_msg, 'html', 'utf-8')) # 增加图片 file = open(pic_path, "rb") img = MIMEImage(file.read()) file.close() img.add_header('Content-ID', '<image1>') msg.attach(img) # 注释增加图片 # 上面的代码是上传附件,不必须,注释中有图片就能够正文掉。 file = open(pic_path, "rb") img = MIMEImage(file.read()) file.close() img.add_header('Content-Disposition', 'attachment', filename=current_time+'疫情上报.png') msg.attach(img) # 注释增加附件 smtp_server = 'smtp.qq.com' # 抉择用QQ邮箱发送 server = smtplib.SMTP_SSL(smtp_server) server.connect(smtp_server, 465) # 465 为 SMTP 端口号 server.login(from_address, password_email) # 登录发信邮箱 server.sendmail(from_address, to_address[i], msg.as_string()) # 发送邮件 server.quit() # 敞开服务器