本篇内容已于2021年1月开源至Github,请自取
前置说明 {#前置说明}
本博客只是记录了一次有趣的小技巧,严禁用于任何非法/商业途径。
因为疫情原因,公司高层要求每日打卡,每缺一天都要扣绩效考核,让我们这本就不富裕的家庭又雪上加霜。平时工作都那么忙,哪有时间天天记得这种事情,想起自学过一段时间的python,开搞开搞咯。
大致思路:抓包获取打卡接口--python模拟打卡--每日定时,干!
准备开始 {#准备开始}
工具 {#工具}
抓包工具:Proxyman(mac下使用,Windows下建议用fiddler)
脚本实现语言:python
服务器:Linux
抓包准备 {#抓包准备}
打开proxyman,设置好代理,测试连通,OK~
开始抓包 {#开始抓包}
手机上点击打卡,正常操作一波,提示打卡成功。
来到我们的proximan,一眼找到我们刚才的操作过程
两个都是Post请求,其中SAVE是保存打卡信息,getRecords是获取打卡信息,我们只用看SAVE中的header以及body(很重要)就可以了。
看到这些内容之后,我们可以通过postman去测试一下这个接口内容,复制请求头以及body内容(json格式),返回内容:
最后再去我们的手机端看一下打卡记录,OK,新增一条打卡记录,时间就是我们刚才发送的那一条。
脚本模拟 {#脚本模拟}
我们上面也看到了,打卡记录保存是通过一个 post接口去调用,用python中的requests库就搞定了。
|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import json import requests # 上面抓包获取到的接口地址 url='***************************' # body并转为json格式 values={"province":"北京","city":"北京市","addressType":"整租房","temperature":"36.7","dayNum":"","contactHbPerplr":"无接触","toWh":"未去过/路过武汉","familySymptom":"无症状","remarks":"","otherDesc":"","backDate":"2020-02-12","jtgj":"自驾/步行","bc":"","addressOther":"","hbOther":"","familyOther":None,"lj":"是","ljOther":"","workStatus":"到岗上班","workOther":"","returnCountry":"未出国","returnCountryRemarks":"","provinceId":"110000","symptom":"无症状"} values_json=json.dumps(values) #请求头 headers = {'content-type': 'application/json'} #发送请求 req = requests.post(url,data=values_json,headers=headers) #返回接口内容 change = req.json() new_req = json.dumps(change, ensure_ascii=False) print(new_req)
|
保存执行,OK,手机端打卡记录也有了。
定时执行 {#定时执行}
个人服务器在linux上,把写好的脚本放服务器上,去设置定时任务
用crontab -e进入当前用户的工作表编辑,添加一行命令:
|-----------|-----------------------------------|
| 1
| * 8 * * * /opt/healthy.py
|
其中要注意的是:
"*"从左到右分别为 分、时、日、月、周, 我上面设置的是每天8点执行。
最后说明 {#最后说明}
暂时就这些了,最后看了一遍发现对新手不是很友好,后面会逐步把每一步所使用的工具都做一个详细的解释,当然这些东西自己百度百度也能能看明白,等我更新的话......随缘。