北工大每日疫情打卡Python自动化

#!/usr/bin/python3 # -*- coding: utf-8 -*- import json import time import datetime import pickle import requests import random def notification(param, key='', action='changed'): # Define your own notification. # Get notification of warnings and status # If return False, then stop the submit process return True if __name__ == '__main__': username = "17080000" # 你的学号 password = "123456789" # 你的登录密码 location = '' if location == '': print('【生成地址】没有指定地址,正在生成随机地址…') # lng = 116.397499 + random.random() / 10.0 - 0.05 # lat = 39.908722 + random.random() / 10.0 - 0.05 # 学校 lng = 116.473056 lat = 39.877778 # 广东茂名——经纬度随便改,但不要超出我国,否则会为空 # lng = 111 # lat = 22 coordination = str(lng) + ',' + str(lat) PARAMS = { 'key': '729923f88542d91590470f613adb27b5', 's': 'rsv3', 'location': coordination } r = requests.get( url='https://restapi.amap.com/v3/geocode/regeo', params=PARAMS) location = r.json() location['lng'] = lng location['lat'] = lat try: print(r.json()['regeocode']['formatted_address']) print('3 秒钟后继续') time.sleep(3) except: print('生成地址时遇到问题') exit('程序已经中断') else: location = json.loads(location) lng = location['lng'] lat = location['lat'] print('【使用地址】' + location['regeocode']['formatted_address']) # init s = requests.session() headers = {} curr_time = datetime.datetime.now() # login data = {'username': username, 'password': password} r = s.post('https://itsapp.bjut.edu.cn/uc/wap/login/check', data=data, headers=headers) tmp = '【登录】' + r.json()['m'] print(tmp) if not '成功' in r.text: time.sleep(3) exit() # report data = { 'ismoved': '0', 'dqjzzt': '0', # 当前居住状态,0为在校、1为在京不在校 'jhfjrq': '', # 计划返京日期 'jhfjjtgj': '', # 计划返京交通工具 'jhfjhbcc': '', # 计划返京航班车次 'tw': 2, # 体温范围所对应的页面上的序号(下标从 1 开始) 'sfcxtz': '0', # 今日是否出现发热、乏力、干咳、呼吸困难等症状? 'sfjcbh': '0', # 今日是否接触疑似/确诊人群? 'sfcxzysx': '0', # 是否有任何与疫情相关的注意事项? 'qksm': '', # 情况说明 'sfyyjc': '0', # 是否医院检查 'jcjgqr': '0', # 检查结果确认 'remark': '', 'address': location['regeocode']['formatted_address'], 'geo_api_info': json.dumps({ 'type': 'complete', 'info': 'SUCCESS', 'status': 1, 'position': { 'O': lng, 'P': lat, 'lng': lng, 'lat': lat }, 'message': 'Get geolocation success.Convert Success.Get address success.', 'location_type': 'html5', 'accuracy': random.randint(10, 100), 'isConverted': True, 'addressComponent': location['regeocode']['addressComponent'], 'formatted_address': location['regeocode']['formatted_address'], 'roads': [], 'crosses': [], 'pois': [], }, ensure_ascii=False), 'area': '北京市 ' + location['regeocode']['addressComponent']['district'], 'province': '北京市', 'city': '北京市', 'sfzx': '0', # 是否已经返校 'sfjcwhry': '0', # 是否接触武汉人员 'sfjchbry': '0', # 是否接触湖北人员 'sfcyglq': '0', # 是否处于隔离期 'gllx': '', # 隔离类型 'glksrq': '', # 隔离开始日期 'jcbhlx': '', # 接触病患类型 'jcbhrq': '', # 接触病患日期 'bztcyy': '', # 当前地点与上次不在同一城市,原因如下:2 探亲, 3 旅游, 4 回家, 1 其他 'sftjhb': '0', # 是否停经湖北 'sftjwh': '0', # 是否停经武汉 'sfsfbh': '0', # 是否所在省份变化 'xjzd': '', # 现居住地 'jcwhryfs': '', # 接触武汉人员方式 'jchbryfs': '', # 接触湖北人员方式 'szgj': '', # 所在国家 'jcjg': '', # 检查结果 # --- The following are uncommented field --- # 'date': datetime.datetime.now().strftime('%Y%m%d'), # 'uid': '0', 'created': int(time.time()), 'jcqzrq': '', 'sfjcqz': '', 'szsqsfybl': 0, 'sfsqhzjkk': 0, 'sqhzjkkys': '', 'sfygtjzzfj': 0, 'gtjzzfjsj': '', 'ljrq': '', 'ljjtgj': '', 'ljhbcc': '', 'fjrq': '', 'fjjtgj': '', 'fjhbcc': '', 'fjqszgj': '', 'fjq_province': '', 'fjq_city': '', 'fjq_szdz': '', 'jrfjjtgj': '', 'jrfjhbcc': '', 'fjyy': '', 'szsqsfty': '', 'sfxxxbb': '', 'created_uid': 0, # 'id': 0, 'gwszdd': '', 'sfyqjzgc': '', 'jrsfqzys': '', 'jrsfqzfy': '' } r = s.post('https://itsapp.bjut.edu.cn/ncov/wap/default/save', data=data, headers=headers) r.raise_for_status() if r.status_code != 200: print('Err: Login failed!') if str(r.json()['e']) == '0': notification(r.json()['m'])






作者:艾孜尔江


__EOF__

本文作者艾孜尔江
本文链接https://www.cnblogs.com/ezhar/p/13913084.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   艾孜尔江  阅读(408)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示