浙江省考试院高考录取状态查询【python+selenium】 可发邮件到指定邮箱

【 一、所用技术 】

python3.7
selenium
ddddocr
email

注:全程使用dos命令执行

【 二、前提准备 】

系统windows
PYTHON3.8
SELENIUM3.141.0
浏览器Google
  • 关于selenium的下载:
    由于pip直接下载selenium会获取最新版,所以建议下载使用以下代码
 pip install selenium==3.141.0
  • 关于浏览器驱动下载:
    参考一下文章:

https://zhuanlan.zhihu.com/p/373688337

【 三、代码 】

import time
import os
import ddddocr                       # 导入 ddddocr
# 导入selenium包
from selenium import webdriver
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
# 打开Chrome浏览器
option = webdriver.ChromeOptions()
# option.add_argument("headless")
#防止打印一些无用的日志
option.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
driver = webdriver.Chrome(chrome_options=option)
#driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get("https://pgzy.zjzs.net:4431/login.htm")
driver.find_element_by_id("shenfenzheng").send_keys('3333')
driver.find_element_by_id("mima").send_keys('1234')
driver.find_element_by_id("imgVerify").click()
time.sleep(0.5)
# 定位验证码  保存验证码进行识别
# driver.maximize_window() 
picture_name2 = 'code'+ '.jpg'
try:
    driver.find_element_by_id('imgVerify').screenshot(picture_name2)

    ocr = ddddocr.DdddOcr(show_ad=False)              # 实例化
    with open('code.jpg', 'rb') as f:     # 打开图片
        img_bytes = f.read()             # 读取图片
        res = ocr.classification(img_bytes)  # 识别 H4PX


    driver.find_element_by_id("yzm").send_keys(res)
    driver.find_element_by_id("btnSubmit").click()
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="mb2"]').click()
    driver.find_element_by_xpath('//*[@id="div74"]').click()
    driver.switch_to.frame("pageurl")  # 2.用id来定位
     
    lq = driver.find_element_by_xpath("/html/body/div/table/tbody/tr[2]/td").text
    if lq != '未查询到录取情况':
        driver.find_element_by_xpath('/html/body').screenshot("lq.jpg")
     
    
    
except Exception:
    driver.quit()

#退出
time.sleep(1)
driver.quit()
# ==========================邮箱发送部分=======================================
print(lq)
my_sender = '556@qq.com'  # 发件人邮箱账号
my_pass = 'xxxxxxx'  # 发件人邮箱授权码
my_user = '556@qq.com'  # 收件人邮箱账号,我这边发送给自己 


def mail():
    ret = True
    try:
        # 添加图片附件
        print("发送中")
        imageFile = r"D:\桌面\pybat\lq.jpg"
        imageApart = MIMEImage(open(imageFile, 'rb').read(), imageFile.split('.')[-1])
        imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile)
        msg = MIMEMultipart()
        
        msg['From'] = formataddr(["cjx", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To'] = formataddr(["yyj", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject'] = "录取结果已出,可以查询!!!"  # 邮件的主题,也可以说是标题
        
        msg.attach(imageApart)
        
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱授权码
        server.sendmail(my_sender, [my_user ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
        print("发送end")
    except Exception as e:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
        print(e)
        ret = False
    return ret

if lq != '未查询到录取情况':
    ret = mail()
    print("邮件已经发出")
else:
    print("等待录取结果")


查询到对应结果后自动截图并将图片发送到指定邮箱

效果展示

【 四、自动化执行 】

@echo off
mode con cols=35 lines=6 & color 5B
:start
echo running....
ping -n 60 127.1>NUL
start "" test.py 
set /a last+=1
echo Number of program runs : %last%
goto start

有问题欢迎大家指正

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值