吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2721|回复: 11
收起左侧

[Python 原创] 【Python】一个脚本检测期末考试是否出分

[复制链接]
WoShiXXX 发表于 2021-1-4 10:47
本帖最后由 WoShiXXX 于 2021-1-5 09:40 编辑

楼主期末考的太好,但是分数一直都没有出,楼主等不及了,于是乎,就有了下面的脚本(PS:该脚本支持自动发送邮件,改一改还能支持GitHub Actions),第一次写爬虫,如有不足请各位大神指出
[Python] 纯文本查看 复制代码
# coding=utf-8
import requests #用于发送http请求
import os #用于获取环境变量
import time #用于生成url中的n
import json #用于解析json
import smtplib #用于发送邮件
import math #用于向下取整
from email.mime.text import MIMEText

basepayload = '?JSONPARAM=%7B%22role_id%22:%22role_2%22,%22user_id%22:%22xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%22,%22exbatch_name%22:%22%22,%22page_size%22:4,%22page_num%22:1,%22student_id%22:%22xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%22%7D' #需要到浏览器中复制、并且要复制转义后的字符串

headers = {
    'Host': 'xf.zyzhedu.com',
    'Connection': 'keep-alive',
    'sec-ch-ua': '%22Google%20Chrome%22%3Bv%3D%2287%22%2C%20%22%20Not%3BA%20Brand%22%3Bv%3D%2299%22%2C%20%22Chromium%22%3Bv%3D%2287%22',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'X-Requested-With': 'XMLHttpRequest',
    'sec-ch-ua-mobile': '?0',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://xf.zyzhedu.com/',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9'
} #配置请求头用于反爬

unixtime = time.time()
payload_ = math.floor(unixtime)
print(payload_)
payload_n = math.floor(unixtime / 1000)
payload = basepayload + '&_n=' + str(payload_) + '&_=' + str(payload_n)
url = 'https://xf.zyzhedu.com/XFFurtherEducation/examinationBatchRoute/getAchExamBatchList' + payload
print(url)
res = requests.get(url,headers = headers)
print(res.status_code)
res_dict = json.loads(res.text)
print(res_dict['resultdata']['dataNum']) #输出考试个数

# 开始配置邮件信息
mail_host = 'smtp.yeah.net' #smtp地址
mail_user = '邮箱用户名'
mail_pass = '邮箱密码'
sender = '邮件发送者地址'
receivers = ['接收者1' , '接收者2']
# 结束配置邮件信息

# 开始设置邮件内容
message = MIMEText('出分了,可以开始查分','html','UTF-8')
message['Subject'] = '出分了'
message['From'] = 'WoShiXXX <' + sender + '>' 
message['To'] = 'zyh <' + receivers[0] + '>'
message['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime()) 
# 结束设置邮件内容




if res_dict['resultdata']['dataNum'] == 3:

    try:
        smtpObj = smtplib.SMTP() 
        #连接到服务器
        smtpObj.connect('smtp.yeah.net',25)
        #登录到服务器
        smtpObj.login(mail_user,mail_pass) 
        #发送
        message_str = message.as_string()
        print(message)
        print(message_str)
        smtpObj.sendmail(sender,receivers[0], message_str)
        message['To'] = 'jieshouren <' + receivers[1] + '>'
        message['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime())
        message_str = message.as_string()
        smtpObj.sendmail(sender,receivers[0], message_str)
        #退出
        smtpObj.quit() 
        print('success')
    except smtplib.SMTPException as e:
        print('error',e) #打印错误
    # 结束发送邮件









免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
mixsen + 1 + 1 我很赞同!
nizsm123 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| WoShiXXX 发表于 2021-1-4 10:56
nizsm123 发表于 2021-1-4 10:51
%22Google%20Chrome%22%3Bv%3D%2287%22%2C%20%22%20Not%3BA%20Brand%22%3Bv%3D%2299%22%2C%20%22Chromium%2 ...

源字符串为:"Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
因为有双引号,为了避免发送请求时出现歧义,我用escape转义了一下
nizsm123 发表于 2021-1-4 10:51
%22Google%20Chrome%22%3Bv%3D%2287%22%2C%20%22%20Not%3BA%20Brand%22%3Bv%3D%2299%22%2C%20%22Chromium%22%3Bv%3D%2287%22

这一串咋搞的?
nizsm123 发表于 2021-1-4 11:07
WoShiXXX 发表于 2021-1-4 10:56
源字符串为:"Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
因为有双引号,为了避 ...

谢谢解答!!!!!!!
我是一只小小 发表于 2021-1-4 13:16
好凡尔赛
知轩 发表于 2021-1-4 14:19
内网的能不能
 楼主| WoShiXXX 发表于 2021-1-4 14:35

得看是什么系统,我这个适用于北京中育开发的查分系统,可以自己分析API,然后自己写爬虫
唯唯子 发表于 2021-1-4 14:37
可以改一改用sever酱微信推送更好一些
 楼主| WoShiXXX 发表于 2021-1-4 15:03
唯唯子 发表于 2021-1-4 14:37
可以改一改用sever酱微信推送更好一些

我在程序里设置的接收邮箱是qq邮箱,那个qq邮箱还绑定我微信了,所以应该跟server酱没什么区别
唯唯子 发表于 2021-1-4 15:34
WoShiXXX 发表于 2021-1-4 15:03
我在程序里设置的接收邮箱是qq邮箱,那个qq邮箱还绑定我微信了,所以应该跟server酱没什么区别

有些邮件会延迟推送。。。 我也不知道咋回事 遇到过很多次了  
(ix 14.0.1系统)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表