在前一篇文章中我们已经知道广城云服务提交的URL,不知道如何获取的同学可以看我前一篇文章。
小程序主页URL: https://g.hc-web.cn/api/index/login
使用的是post请求 :
点击我的健康卡:获取之前的填报信息
URL: https://g.hc-web.cn/api/index/getDay
点击每日记录(一日一报)
URL = https://g.hc-web.cn/api/index/getDayInfo
提交表单数据:
url = https://g.hc-web.cn/api/index/putNewDay
重要数据 uid 每个人的uid都不一样
uid是我们登录后才有的,我们程序是要保持登录状态所以要使用session
后面我就不解释了,直接上源码。我这个写的是简易版本的就一个人用。毕竟人多了不好,你们要是感兴趣可以改为多人的,整一个列表保持登录信息在去循环提交即可,记者要加一个延时,不然容易被发现。
# -*- coding: utf8 -*-
import requests
import json
studentinfo = {
"name": "周杰伦",#姓名
"pwd": "12345678",#学号
"openid": "openid",
"subscription": "accept"
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
}
session = requests.session()
def getuid():
login_url = "https://g.hc-web.cn/api/index/login"
# response = session.post(login_url, headers=headers, data=studentinfo)
# print(response.content.decode())
return int(json.loads(session.post(login_url, data=studentinfo, verify=False, headers=headers).text)["data"]["user"]["id"])
def putdata(uid):
put_url = "https://g.hc-web.cn/api/index/putNewDay"
data = {
"uid": uid,
"is_campus": "否",
"campus": "节假日未返校",
"nowaddress": "目前在广州市内",
"nowaddressinfo": "undefined",
"region_address": "undefined",
"phone": "15218128768",
"fever": 2,
"feverinfo": "undefined",
"feverinfo1": "undefined",
"feverinfo2": "undefined",
"feverinfo3": "undefined",
"jie": "undefined",
"jie1": "undefined",
"jie3": "undefined",
"jie4": "undefined",
"jie5": "南校区(3月18日)",
"jie6": "undefined",
"jie7": "不计划接种",
"jie8": "undefined",
"jie9": "undefined",
"jie10": "已经接种第三针",
"jie11": "undefined",
"plan": 2,
"planaddress": "undefined",
"risk_area": "低风险区",
"risk_area_address": "undefined",
"jkcode": "绿码"
}
text_html = session.post(put_url, data, verify=False).text
print(text_html)
# json_data = json.loads(text_html)
# print(json_data)
# result = True if json_data["msg"] == "保存成功" else False
# return result
def run():
putdata(getuid())
return "每日一报成功"
def main_handler(event, context):
return run()
if __name__ == '__main__':
run()
需要更改的只要前面几行的学号,姓名就可以了。但是这样填写一人一报还要打开电脑是不是很麻烦,我们可以把代码放到腾讯云服务函数这样就能实现每天定时自动填写。