小白的博客

  • 介绍
  • 一、Fiddler 抓包工具
  • 1.安装和配置
  • 2.抓包
  • 二、QQ邮箱
  • 获取授权码
  • 三、Python 代码
  • 以下演示均使用另一个项目”我在校园演示“,原理为一致
  • ### 四、阿里云函数
  • 1.使用云函数
  • 2.定时触发
  • 五、Q&A
  • 1.Cron表达式
  • 2.如何第一时间收到QQ邮件
  • 3.下载了QQ邮箱APP后,邮箱公众号收不到邮箱消息了
  • 4.errorcode
  • 5.为什么不用”喵提醒“、”pushplus 推送加“等公众号作为打卡提醒方式
  • 6.如何将腾讯云函数的代码转移到阿里云函数计算FC
  • 7.阿里云函数计算FC免费额度
  • 8.Fiddler抓包失败
  • 9.抓不到小程序
  • 首页
  • 友情链接
  • BiliBili
  • 下载站
  • 音游助手
  • 所有文章
  • 不干好事
  • Android
  • 大数据学习
  • 音游助手 隐私政策
2025 年 8 月
一 二 三 四 五 六 日
 123
45678910
11121314151617
18192021222324
25262728293031
« 4 月    
本站若未声明则默认为原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 碎白啊

渭南师范学院微信每日打卡

  • Smallway
  • 2023-02-19
  • 0

目前已经不需要打卡,此版暂停更新,留作纪念

项目地址:smallway233/Weinan-Normal-University-wechat-daily-sign-in (github.com)

介绍

渭南师范学院微信每日自动打卡(渭南高校技术转移中心) 本代码仅用于学习使用,请勿使用本代码盈利等。造成后果由使用者自负,均与作者无关。健康生活,认真打卡。作者QQ:1097123142,欢迎交流。

截止2022年5月9日,该代码使用一切正常,无失效的情况出现。

​
所有文件以及相关代码已在文件列表上传,下载即可使用

一、Fiddler 抓包工具

1.安装和配置

安装包下载:Fiddler 安装包和 Fiddler 证书生成器

蓝奏云链接:https://dominic.lanzouq.com/iKszLzyh5gh

下载后解压,先双击 FiddlerSetup.exe 进行安装,另一个是证书生成器,暂时不用。

打开 Fiddler ,点击工具栏中的 Tools → Options

1.1.2

点击 HTTPS 标签,勾选框住的三项,然后点击右边的 Actions,选择第二项,会弹出一个弹窗,点击确定,之后点击 OK 完成设置

Untitled

这时会发现桌面上多了一个证书文件(如下图),接下来马上会用到

Untitled

打开电脑上任何一个浏览器,在这里我用的是 win10 自带的 Edge,打开设置,找到证书管理,实在找不到也可以直接搜索

Untitled

点击管理证书,点击导入进入证书导入向导

Untitled

点击下一页继续

Untitled

点击浏览,选择要导入的文件

Untitled

在桌面找到刚刚导出的证书文件,点一下证书文件,选择打开

Untitled

之后一直点击下一步,直到完成证书导入。到这里配置工作基本完成,可以进行抓包了,刚刚导出在桌面的证书文件也可以删除

2.抓包

接下来从微信电脑端打开渭南高校技术转移中心公众号,进行一次打卡,会发现 Fiddler 中显示了很多内容,我们找到yqtj2.wnu.edu.cn这一行,双击打开,在右边选择Headers标签,复制 User-Agent(设备信息)、Referer(学校信息)、cookie(身份识别码)、X_REQUESTED_WITH(X_要求)、Header-Pool(标题池)。

复制的内容可以发给你的工具人小伙伴,或者你的小号,总之先保留下来备用。

二、QQ邮箱

获取授权码

用QQ邮箱发件也需要登录,不是用账号密码,而是授权码(更安全),接下来获取授权码

进入QQ邮箱网页版,进入设置,选择账户

Untitled

往下翻找到 POP3/SMTP服务,确保第一项是已开启状态,如果不是,点击后面的开启,然后选择下面的生成授权码

Untitled

根据提示验证后,得到授权码,和抓包步骤一样,把授权码复制保存下来备用。

Untitled

三、Python 代码

import requests
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# @time   2022年5月6日18:31:05

#今天突发奇想看了一下这个脚本,结果发现在服务器上挂了将近4个月了,依旧没有挂。所以我断定贵校的维护人员肯定不怎么维护吧......
#渭南师范学院打卡V2.0版本
#**************************************更新内容******************************************
#1.优化代码结构,提高可观性,也降低了对新手及入门的兄弟集美们学习的门槛。
#2.写了个debug在里面,这样在你们加我QQ之后问我为什么报错的时候我能够更好地指出错误。
#**************************************更新内容******************************************
#作者QQ:1097123142   本脚本仅供学习,使用时问题可以加我QQ问我哦!(看到绝对会回)
#注意:请修改以下8条内容。
发件人邮箱="xxx"
发件人邮箱授权码="xxx"
收件人邮件="xxx"
#以下的内容需要抓包获得,具体操作详情:https://gitee.com/smallway/wnsfsign
User_Agent="xxx"
Referer="xxx"
Cookie="xxx"
X_REQUESTED_WITH="xxx"
Header_Pool='xxx'
#本条注释的上一条内容理论上应当是一个由大括号‘{}’括起来的内容

def main_handler(event, context):
    sender = str(发件人邮箱)
    pass_ =str(发件人邮箱授权码)
    user = str(收件人邮件)
    api="http://yqtj2.wnu.edu.cn/index.php/1/addons/fire/up/submit"
    a='{"data":{"whereis":1,"health_state":1,"family_health":1,"fever":0,"fifteen_covid":0,"village_covid":0,"temperature":"null","temp_state":1,"work":1,"back":0,"lng":"null","lat":"null","agent_up":0,"agent_user_id":"null","parent":0}}'
    getheaders ={
            "Host":"yqtj2.wnu.edu.cn",
            "content-type":"application/json",
            "Accept-Encoding":"gzip, deflate",
            "Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
            "Connection":"keep-alive",
            "User-Agent":str(User_Agent),
            "Referer":str(Referer),
            "Content-Length":"2000",
            "Sec-Fetch-Site":"same-site",
            "Sec-Fetch-Mode":"cors",
            "Sec-Fetch-Dest":"empty",
            # @author smallway
            "Cookie":str(Cookie),
            "X_REQUESTED_WITH":str(X_REQUESTED_WITH),
            "Header-Pool":str(Header_Pool),
}
    a=a.encode("utf-8")
    data=requests.post(api,headers=getheaders,data=a).json()
    #打卡成功则不发邮件,打卡失败发送邮件提醒打卡失败,需要手动打卡。
    if data['status']==200:
        print("打卡成功")
        return '打卡成功'
    elif data['message']=='该时段已经上报,无需重复上报':
        print('打卡其实成功了,只不过你打过卡了,不能打第二遍卡吧')
        return '打卡其实成功了,只不过你打过卡了,不能打第二遍卡吧'
    else:
        msg = MIMEText("打卡失败", 'plain', 'utf-8') 
        msg['From'] = formataddr(["小白", sender])  
        msg['To'] = formataddr(["Me", user])  
        msg['Subject'] = "打卡失败"  
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)  
        server.login(sender, pass_)  
        server.sendmail(sender, [user, ], msg.as_string())  
        server.quit()
        print("打卡失败,错误原因:"+data)
        return '打卡失败,错误原因:'+str(data)
# @author smallway
if __name__ == "__main__":
    main_handler()

推荐加入我们的QQ群,群内会实时更新代码

Untitled

以下演示均使用另一个项目”我在校园演示“,原理为一致


### 四、阿里云函数

注册过程就不再赘述,注册完记得完成实名认证,这里给出阿里云官网链接:阿里云(aliyun.com)

1.使用云函数

进入阿里云先登录,搜索函数计算FC

Untitled

开通并进入管理界面

Untitled

创建一个新服务,名称自定义,其他设置默认即可

Untitled

进入到刚刚创建的服务,创建一个新函数

Untitled

按照图示进行设置

Untitled

这里尤其注意:一定要选择弹性实例,涉及到免费额度(Q6会做解释)

Untitled

创建完成后双击打开代码文件,将上面修改好的代码粘贴进去

Untitled

部署并调用,会收到邮件

Untitled
Untitled

2.定时触发

设置定时触发之后,就可以按照自己的时间定时运行一次代码,这样就解放了双手

触发器管理 → 创建触发器

Untitled

触发周期选择自定义,这里要输入 Cron 表达式,健康打卡是每天一次,只要过了零点就可以打卡,所以 Cron 表达式是 CRON_TZ=Asia/Shanghai 0 01 00 * * *,表示每天00:01运行一次代码;日检日报是每天三次,这里根据我们学校的时间,我写的是 CRON_TZ=Asia/Shanghai 0 35 6,12,19 * * * *,表示每天6:35、12:35、19:35各运行一次;其他设置保持默认即可,点击提交。

教程到这里就结束了,如果需要其他时间打卡,可以直接更改 Cron表达式,为了方便大家更改,关于 Cron 表达式的语法在下面的Q&A中也讲解一下

Untitled

五、Q&A

最后在这里放一个问答板块,如果大家有什么问题可以在评论区提问(评论区可能回复不及时,推荐使用qq联系),我会定期更新在这里

1.Cron表达式

Cron表达式有7个字段,以空格分割

字段区值范围和描述
CRON_TZ这一部分为可选,不设置代表使用 UTC 时间。例如:CRON_TZ=Asia/Shanghai 代表北京时间。
秒表达式中的第一位,取值范围为 0~59,不允许设置特殊字符。
分表达式中的第二位,取值范围为 0~59,允许设置特殊字符 , - * /。
小时表达式中的第三位,取值范围为 0~23,允许设置特殊字符 , - * /。
日期表达式中的第四位,取值范围为 1~31,允许设置特殊字符 , - * ?/。
月份表达式中的第五位,取值范围为 1~12 或 JAN~DEC,允许设置特殊字符 , - * /。
星期表达式中的第六位,取值范围为 0~6 或 MON~SUN,允许设置特殊字符 , - * ?。

特殊字符说明

特殊字符说明
*表示任一或每一。例如:分钟字段 * 表示每分钟。
,表示列表值。例如:星期字段中 MON,WED,FRI 表示星期一,星期三和星期五。
-表示一个范围。例如:小时字段中 10-12 表示 UTC 时间从10点到12点。
?表示不确定的值。例如:如果指定了一个特定的日期,但您不在乎它是星期几,那么在星期字段中就可以使用问号这个特殊符号。
/表示一个值的增加幅度,n/m表示从n开始,每次增加m。例如:在分钟字段中:3/5表示从3分钟开始,每隔5分钟执行一次。

示例

示例Cron 表达式 (UTC 时间)Cron 表达式(北京时间)
每天12:00调度函数0 0 4 * * *CRON_TZ=Asia/Shanghai 0 0 12 * * *
每天12:30调度函数0 30 4 * * *CRON_TZ=Asia/Shanghai 0 30 12 * * *
每小时的26分,29分,33分调度函数0 26,29,33 * * * *CRON_TZ=Asia/Shanghai 0 26,29,33 * * * *
周一到周五的每天12:30调度函数0 30 4 ? * MON-FRICRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRI
周一到周五的每天12:00~14:00每5分钟调度函数0 0/5 4-6 ? * MON-FRICRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRI
一月到四月每天12:00调度函数0 0 4 ? JAN,FEB,MAR,APR *CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR *

2.如何第一时间收到QQ邮件

如果每次都打开邮箱网页查看打卡状态,那自然很麻烦,最简单的方法就是手机下载QQ邮箱客户端,并打开消息提醒,这样每次代码运行结束都能及时收到打卡状态。如果不想下载软件,也可以用微信的QQ邮件提醒,不过这需要一些设置:

首先确保微信和QQ号已经绑定,找到【设置】-【账号与安全】-【更多安全设置】来绑定QQ号

Untitled

绑定好之后,点击微信上方的搜索,搜“QQ邮箱提醒”功能并启用,这样就可以在微信收到邮件了

Untitled

3.下载了QQ邮箱APP后,邮箱公众号收不到邮箱消息了

进入qq邮箱app,点开头像,选择新邮件提醒,拉到下面选择你的qq邮箱账号,然后关闭下面的仅在qq邮箱客户端提醒,然后公众号就可以正常接收信息了。

4.errorcode

若出现类似于{"errorCode":1,"errorMessage":"Traceback (most recent call last):\n ......,"statusCode":443}的错误,可尝试重新建一个云函数,即重复步骤四

5.为什么不用”喵提醒“、”pushplus 推送加“等公众号作为打卡提醒方式

原因只有一个:麻烦。

用过的同学应该知道,这些提醒类公众号都有一个共性:需要发送激活48小时消息,也就是发送激活消息后才能收到提醒,这是为什么?这并不是公众号博主为了广告效应或是其他,而是由于公众号的后台限制:公众号后台无法回复用户超过48小时的消息(参考官方解释:客服帐号管理 | 微信开放文档 (qq.com));那么自然无法发送打卡成功的提醒,其次,如果真的喜欢用微信作为提醒渠道,可以参考上面Q2:如何第一时间收到QQ邮件即可

6.如何将腾讯云函数的代码转移到阿里云函数计算FC

参考上文中使用阿里云函数的步骤之后,将腾讯云的代码复制到阿里云,修改代码中的main_handler为handler ,具体操作:在编辑器中按下键盘上的ctrl + H 调出查找替换,点击全部替换;之后填写触发器Cron表达式也应当注意两边的差异,详情参考Q1:Cron表达式

Untitled

7.阿里云函数计算FC免费额度

详情参考官方帮助文档

注意:免费额度仅适用弹性实例,并且函数使用过程产生的公网出流量不在免费额度中,但其费用极小,几乎可以忽略,如有产生相关费用,支付即可(几毛几分钱没有人会特别在意的吧)

免费额度

函数计算每月为您提供一定的免费额度(每月约46元,年度总计约552元)。您的阿里云账户与RAM用户共享每月免费的调用次数和执行时间额度。免费额度不会按月累积,在下一自然月的起始时刻,即01号零点,会清零然后重新计算。

公网出流量

函数计算根据每月使用的公网出流量总和计费。公网出流量费用=函数内数据传输流量×流量单价+函数请求响应流量×流量单价+CDN回源流量×流量单价。

  • 函数内数据传输流量:通过函数访问公网,函数向公网发起网络请求(Request)时所产生的流量。
  • 函数请求响应流量:通过公网调用函数,函数执行完成,返回响应(Response)时所产生的流量。
  • CDN回源流量:以函数计算作为CDN的源站,CDN回源时所产生的流量。
计量项单价免费额度(每月)
函数内数据传输流量0.80元/GB无
函数请求响应流量0.50元/GB无
CDN回源流量0.50元/GB无

8.Fiddler抓包失败

卸载证书 - 重启电脑 - 重装证书

卸载证书 - 重启电脑 - 重装证书

卸载证书 - 重启电脑 - 重装证书

抓包失败的原因是证书安装失败,需要重装,参考:Fiddler证书清除并重新配置

注意:卸载干净后一定重启电脑,再重装!

卸载证书 - 重启电脑 - 重装证书

卸载证书 - 重启电脑 - 重装证书

卸载证书 - 重启电脑 - 重装证书

9.抓不到小程序

是由于小程序的更新,可以参考:fiddler抓包PC微信小程序失败解决方案

该方案只可以临时使用,下次抓包可能还需要处理一次

© 2025 小白的博客
Theme by Wing
陕ICP备2023005185号-1 陕公网安备61030302000374
本站由提供CDN加速/云存储服务
  • {{ item.name }}
  • {{ item.name }}