最近被老师安排提醒班级同学打卡,看到每天很多人忘记打就很心累,想着弄个自动打卡的,于是网上巴拉了一下,找到了主要接口。具体方法如下:

一、获取token值

每个用户都有固定的且不变的一个token值,获取方法如下
1.访问易统计官网:https://www.ioteams.com/ncov/#/login,如下图2.输入手机号,获取验证码登录
3,按f12,然后点击Network,然后刷新一下页面
刷新后,找到ncov/,然后点击
4.点击cookie,找到token,获取token。

二、编写python代码

复制代码修改第五行token值,以及相关打卡信息(地区、健康情况等)在python环境运行即完成打卡。注:如果你频繁离开当地区域,请不要用这种打卡方式。如身体不适,请即时向老师汇报!

import requests
import json
#接口header
headers={ 
"Content-Type": "application/json;charset=utf-8",
"ncov-access-token": "af*********be5",#用户token是唯一且不变的,获取方法见上文。
}
#打卡信息
data={ 
"address": { 
"province": "420000",#省份代码(湖北省)
"city": "420100",#市区代码(武汉市)
"county": "420115",#县级代码(江夏区)
"autoFetch": True,
"lng": "114.31301",#填写当前地区经度
"lat": "30.34653"#填写当前地区纬度
},
"self_suspected": False,
"self_confirmed": False,
"family_suspected": False,
"family_confirmed": False,
"fever": False,#是否发热
"description":"",
"infected": False,#是否感染
"at_home": True,
"contacted_beijing":False,
"passed_beijing":False,
"contacted": False,
}
#获取当前日报id
def get_DailyCode():
    link='https://www.ioteams.com/ncov/api/users/dailyReport'
    req=requests.post(link,headers=headers,data=json.dumps(data))
    response=req.json()
    id=response['data']['data']['_id']
    print(id)
    return id
#打卡
def report_health():
    id=get_DailyCode()
    url = 'https://www.ioteams.com/ncov/api/users/dailyReports/{}'
    req=requests.put(url.format(id),headers=json.dumps(headers),data=json.dumps(data))
if __name__ == '__main__':
    report_health()

代码中需要填写的城市区域编号可在国家统计局官网
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html中查询。
代码编辑

三、设置每天自动打卡时间

本人自己有一台腾讯云服务器,宝塔管理,所以使用的宝塔的计划任务shell脚本执行该python脚本。
如有需要该方法自动打卡的同学可按上面步骤获取token,然后修改代码中相关信息后,把代码发我即可,我在服务器上给大家设置定时任务。

参考来源

本文地址:https://blog.csdn.net/weixin_44324669/article/details/110878100