zoukankan      html  css  js  c++  java
  • 北工大每日疫情打卡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'])
    
    






    作者:艾孜尔江

  • 相关阅读:
    java数组
    python中的换行与不换行
    金融业务知识2---资金的时间价值与跨时期优化
    金融业务知识1---金融和金融系统
    你真的理解正向代理和反向代理吗?
    webpack(9)plugin插件功能的使用
    webpack(8)vue组件化开发的演变过程
    webpack(7)webpack使用vue配置
    webpack(6)webpack处理图片
    webpack(5)webpack处理css文件
  • 原文地址:https://www.cnblogs.com/ezhar/p/13913084.html
Copyright © 2011-2022 走看看