一、下载Fiddler
二、配置Fiddler
打开该工具 ,点击工具栏中的 Tools → Options
选择第二个Https,把下面这个打对勾。
然后点击右边Actions,选择第二个,然后点击ok.
三、获取相应信息
1、首先在电脑上面登录微信,进入我的校园打卡
2、然后在Fiddler里面找到下面这个。
3、复制里面的标红的内容,后面要用到
4、获取要打卡地方的位置
可以通过该网站进行获取:https://map.jiqrxx.com/jingweidu/
四、打卡代码
import requests
import datetime
class form:
# 初始化表单
def __init__(self):
self.api = "https://student.wozaixiaoyuan.com/heat/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": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/53.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat",
# 修改1:User-Agent 访问的设备
"Referer": "https://servicewechat.com/wxce6d08f781975d91/182/page-frame.html", # 修改2:Referer
"Content-Length": "360",
"JWSESSION": "", # 修改3:JWSESSION 写为自己的
}
self.data = {
"answers": '["0","2"]', # 第一个 0 代表健康状况 第一个 没有下列情况,身体健康 第二个 0 代表核酸检测时间 为 2的话 代表是超过一周
"seq": elf.get_seq(),, # 早上是 1 下午是 2
"temperature": 36.3, # 温度
# 修改8:打卡地址
"longitude": "107.917088", # 经度
"latitude": "34.383132", # 纬度
"country": "中国",
"province": "陕西省",
"city": "宝鸡市",
"district": "扶风县",
}
# seq的1,2代表早,晚
def get_seq(self):
current_hour = datetime.datetime.now().hour
print(current_hour)
# @Author : Dominic.
if 0 < current_hour < 12:
return "1"
elif 12 <= current_hour < 18:
return "2"
else:
return 1
def run(self):
# 打印当前时间
print(datetime.datetime.now())
# 接受返回值
ret = requests.post(self.api, headers=self.headers, data=self.data, ).json() # 打卡提交
if ret['code'] == 0: # 打卡成功
print("clock in success!")
elif ret['code'] == 1: # 打卡结束
print("clock in end")
else: # 打卡失败
print("error")
if __name__ == "__main__":
form().run()
我们学校的话,提交表单的格式为这些内容:
如果不一样,可以对提交数据进行修改。
五、部署在阿里云服务器(定时执行)
1、通过FileZilla 把该python代码上传到自己的服务器。
2、通过Xshell连接服务器,在命令行输入:
crontab -e # 定时执行代码
3、进入到添加定时任务界面,添加语句:
0 8,13 * * * python3 /usr/schoolcard/demo.py
这句话的意思是每天的八点和十三点运行一次demo.py文件。
4、查看是否定时执行
crontab -l # 查看所有的定时执行的任务
至此,所有工作完成。