我到底在不在校园——自动打卡实现

我在校园自动打卡

相信多数学校都会在假期要求每天进行健康打卡,今天就教大家如何简单的实现自动打卡

分为这几个部分:

  1. 微信公众号:喵提醒

  2. Fiddler抓包工具安装

  3. 微信电脑端

  4. 腾讯云(或者其他能运行云函数的都行,比如:华为云、阿里云等),需完成实名认证

    第一步 微信公众号关注喵提醒

    关注喵提醒公众号后点击 提醒→添加提醒
    我到底在不在校园——自动打卡实现_第1张图片

    然后随便输入一个标题,点击保存

我到底在不在校园——自动打卡实现_第2张图片

然后我们就能看到这样一个界面,记住界面里的这个喵码,待会要用到

我到底在不在校园——自动打卡实现_第3张图片

第二步 安装Fiddler工具

Filddler官网:https://www.telerik.com/fiddler

官网下载不动的可以选择百度云:

链接: https://pan.baidu.com/s/1lLDNrBgWcXtcM5Vy07duCQ 提取码: vxdd

安装以后注册账号,界面是这样的

我到底在不在校园——自动打卡实现_第4张图片

然后点击这个小齿轮

我到底在不在校园——自动打卡实现_第5张图片

我到底在不在校园——自动打卡实现_第6张图片

然后点击这个选项,选择“是”,就会有一个证书文件出现在你的桌面

我到底在不在校园——自动打卡实现_第7张图片

在这里插入图片描述

这时候打开浏览器,这里以谷歌浏览器为例子:

我到底在不在校园——自动打卡实现_第8张图片

点击右上角省略号→设置→隐私和安全性→安全

我到底在不在校园——自动打卡实现_第9张图片

往下翻,找到“管理证书”并点击

我到底在不在校园——自动打卡实现_第10张图片

然后选择刚刚桌面上的证书文件按步骤导入就可以了

到这一步,Fiddler工具的设置就完成了

第三步 登录微信电脑端

  1. 登录微信电脑端
  2. 打开Fiddler工具
  3. 点击左侧这个按钮,找到“我在校园”小程序
    我到底在不在校园——自动打卡实现_第11张图片

4.点击我在校园小程序,能在Fiddler左侧找到这样的信息:

​ 以student.wozaixiaoyuan.com/ 打头,点击进去

我到底在不在校园——自动打卡实现_第12张图片

​ 其中 User-Agent和Referer分别是你的设备和学校信息,这个不会变动,token相当于是你的用户令牌,用来证明身份
token会3到4天失效一次,所以要熟悉这个抓包的过程
​ 把这三项信息记录下来

第四步 浏览器搜索腾讯云

搜索腾讯云并点击进入

我到底在不在校园——自动打卡实现_第13张图片

我到底在不在校园——自动打卡实现_第14张图片

我到底在不在校园——自动打卡实现_第15张图片
我到底在不在校园——自动打卡实现_第16张图片

点击在弹出的界面里这样设置

我到底在不在校园——自动打卡实现_第17张图片

然后在点击“函数服务”

将下面的代码粘贴进去并用你自己记录下来的信息替换其中用xxxx代替的地方:

import json
import logging
import requests, time, random
import datetime

logger = logging.getLogger()
logger.setLevel(logging.INFO)

# 健康打卡提交后字典的参数,返回中文
def get_status(self):
    if self['code'] == 0:
        return "自动打卡(健康打卡)成功"
    elif self['code'] == 1:
        return "健康打卡时间结束"
    elif self['code'] == -10:
        return "Token已失效,请及时更换Token值"
    else:
        return "发生未知错误,请及时检查!"

class Do:
    def __init__(self):
        
        # 喵提醒通知
        self.notifytoken = 'xxxxxxx'  # 喵码  填入第一步申请的喵码

        self.api = "https://student.wozaixiaoyuan.com/health/save.json"  # 健康打卡 提交地址
        self.headers = {
     
            "Host": "student.wozaixiaoyuan.com",
            "Content-Type": "application/x-www-form-urlencoded",
            "Accept-Encoding": "gzip, deflate, br",
            "Connection": "keep-alive",
            "User-Agent": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",	# 用Fiddler抓包的User-Agent值修改
            "Referer": "https://servicewechat.com/xxxxxxxxxxxxxxxxxxxxxxx/xxx/page-frame.html",	# 用Fiddler抓包的Referer值修改
            "token": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxx",  # 用Fiddler抓包的token值(需定期更换)修改 一个token大约能用3到4天
            "Content-Length": "29",
        }   # 以上都可以在抓包中获取参数信息  可修改
        
        # 健康打卡数据
        self.data = {
     
            "answers": '["0","0","0","0","0","xxxxxxx","0"]', 
            #  answer是健康打卡的问题答案,从左到右依次是第一题到最后一题的答案
            #  其中选择题的0代表第一个选项,1代表第二个选项,填空题直接打字进去就行
            "latitude": "xxxxxxx ", # 维度
            "longitude": "xxxxxxxx ", # 经度
            #  填入你家所在位置的经纬度,直接在地址后面加经纬度 然后百度就知道了
            #  都可以自己填经纬度了,改定位不用我教了吧
            "country": "中国",
            "city": "xx市",
            "district": "xx区",
            "province": "xx省",
            "township": "xx街道",
            "street": "xx路",
            #  省市县路这些信息自己填进去就行
        }  # 位置信息也是通过抓包获取之前是记录

    def run(self):
        res = requests.post(self.api, headers=self.headers, data=self.data, ).json() # 健康打卡提交
        msg = {
     
            "id": self.notifytoken,
            "text": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "\n" + "现在进行云端自动打卡" + "\n" + get_status(res),
            "type": "json"
        }
        print(type(msg))
        requests.post("http://miaotixing.com/trigger", data=msg)  # 喵提醒的地址,会返回执行信息情况.
        return True

if __name__ == "__main__":
    Do().run()

def main_handler(event, context):
    logger.info('got event{}'.format(event))
    return Do().run()

我到底在不在校园——自动打卡实现_第18张图片

点击函数配置 点击编辑

我到底在不在校园——自动打卡实现_第19张图片
我到底在不在校园——自动打卡实现_第20张图片

将相关参数修改成和图里一样,然后往下翻,点击保存

然后在代码页点击测试,在弹出的窗口点击部署并测试,如果运行成功会在喵提醒发送如下信息给你:

我到底在不在校园——自动打卡实现_第21张图片

光设置到这里还不能够让它自动运行,我们点击触发管理

我到底在不在校园——自动打卡实现_第22张图片

点击创建触发器,将触发周期改为自定义触发周期

下面的Cron表达式格式是这样的:

我到底在不在校园——自动打卡实现_第23张图片
我到底在不在校园——自动打卡实现_第24张图片

选择好自己想要的时间后点击提交,到这一步就彻底完成啦!就静静的等待它为你自动打卡了。

Fiddler的配置参考了这篇博客:“https://www.cnblogs.com/liulinghua90/p/9109282.html”

代码方面在这篇博客的基础上做了自己想要的优化:“https://blog.csdn.net/King_why_love/article/details/110860778”

题外话

既然能够自动打卡,是否也能自动干一些其他的事情呢?

比如:

班干部朋友们最痛恨的催打卡环节

我们可以设置自动提醒,每天定时提醒你哪些憨憨同学还没有打卡

实现方法和健康打卡差不多

头文件和健康打卡的保持一致即可

传入数据方面我们需要和健康打卡作出区别,健康打卡需要地址、问题等信息,查询未打卡人员只需要日期和type类型即可完成

但是健康打卡只是提交数据,查询未打卡人员需要获取数据并且对获取到的json数据进行处理

这里只是给大家一个思路,实现起来比健康打卡稍难一些,具体的实现效果是这样的:

我到底在不在校园——自动打卡实现_第25张图片

你可能感兴趣的:(python)