疫情通 晨午晚检(XDUer)

晨午晚检填报代码

首先在网页上填一遍信息后,注意查看save.xhr以及save-log.xhr后缀的标头和请求正文,这里边有我们要的东西。按照下边代码的格式和你浏览器查看到的信息填写

url = "https://xxcapp.xidian.edu.cn/xisuncov/wap/open-report/save"
headers = {
     'Content-Type': 'application/x-www-form-urlencoded',
           'Accept': 'application/json, text/plain, */*',
           'Accept-Language': 'zh-CN',
           'Accept-Encoding': 'gzip, deflate, br',
           'Host': 'xxcapp.xidian.edu.cn',
           'Origin': 'https://xxcapp.xidian.edu.cn',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)  '
                         'Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362',
           'Connection': 'keep-alive',
           'Referer': 'https://xxcapp.xidian.edu.cn/site/ncov/xidiandailyup?form=timeline',
           'Content-Length': '166',
           # Cookie是身份标识
           'Cookie': 'Hm_lpvt_48b64885d22a90111e46b972e3268=1598661314; '  # Hm_lpvt_xxxxxxx 为当前时间戳(秒)
           # Hm_lvt_xxx 为一串时间戳。最近的一次访问时间戳追加在后面,最多保留4个时间戳。可以通过关闭浏览器然后再访问相同页面查看其cookie值来验证。
                     'Hm_lvt_48b682d4885d22a90111e46b972e3268=1598648506; UUkey=465ad3b6b91f04034debc97d0c28797e; '
                     'UqZBpD3n3iJU=v1q6tbQwSDM6l;  eai-sess=ut6u3up65uto5vr2hqlmrpo7',
           'X-Requested-With': 'XMLHttpRequest',
           }

data = {
     
    'uid': '个人身份id 6位数',
    'date': str(datetime.date.today()).replace("-", ""),
    "ymtys": "0",    # 一码通颜色
    "sfzx": "1",     # 是否在校
    "tw": "1",   # 体温
    'address': '省市××大学××学院`',
    'area': '省 市 ××区',
    'province': '省',  # 地址
    'city': '市',  # 城市
    # 伽利略定位系统详情
    'geo_api_info': "{\"type\":\"complete\",\"position\":{\"Q\":12.34,\"R\":12.34,\"lng\":12.34,\"lat\":12.34},\"location_type\":\"html5\",\"message\":\"Get ipLocation failed.Get geolocation success.Convert Success.Get address success.\",\"accuracy\":12,\"isConverted\":true,\"status\":1,\"addressComponent\":{\"citycode\":\"12\",\"adcode\":\"12\",\"businessAreas\":[],\"neighborhoodType\":\"\",\"neighborhood\":\"\",\"building\":\"\",\"buildingType\":\"\",\"street\":\"\",\"streetNumber\":\"\",\"country\":\"中国\",\"province\":\"省\",\"city\":\"市\",\"district\":\"区\",\"township\":\"\"},\"formattedAddress\":\"\",\"roads\":[],\"crosses\":[],\"pois\":[],\"info\":\"SUCCESS\"}",
    "sfcyglq": "0",  # 是否处于隔离期
    "sfyzz": "0",    # 是否有症状
    "qtqk": "",  # 其他情况
    "flag": 0,   #0:上午 1:下午  2:晚上
    "creator": "与uid一致",
    'created': str(int(time.time())),  # 创建时间
    "id": 1585267   
}

为了保证填写的东西成功,这里我们采用server酱进行通知。具体的操作流程请看:server酱。
从网站上获取自己的SCKEY后,就可编写通知部分:

def wechat(content):
    api = "https://sc.ftqq.com/{SCKEY}.send"
    data = {
     
        "text": "晨午晚检",
        "desp": content
    }
    req = requests.post(api, data=data)
    return req

接下来是整体代码:

import time
import requests
import datetime

def wechat(content):
    api = "https://sc.ftqq.com/{SCKEY}.send"
    data = {
     
        "text": "晨午晚检",
        "desp": content
    }
    req = requests.post(api, data=data)
    return req

url = "https://xxcapp.xidian.edu.cn/xisuncov/wap/open-report/save"
headers = {
     'Content-Type': 'application/x-www-form-urlencoded',
           'Accept': 'application/json, text/plain, */*',
           'Accept-Language': 'zh-CN',
           'Accept-Encoding': 'gzip, deflate, br',
           'Host': 'xxcapp.xidian.edu.cn',
           'Origin': 'https://xxcapp.xidian.edu.cn',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)  '
                         'Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362',
           'Connection': 'keep-alive',
           'Referer': 'https://xxcapp.xidian.edu.cn/site/ncov/xidiandailyup?form=timeline',
           'Content-Length': '166',
           # Cookie是身份标识
           'Cookie': 'Hm_lpvt_48b64885d22a90111e46b972e3268=1598661314; '  # Hm_lpvt_xxxxxxx 为当前时间戳(秒)
           # Hm_lvt_xxx 为一串时间戳。最近的一次访问时间戳追加在后面,最多保留4个时间戳。可以通过关闭浏览器然后再访问相同页面查看其cookie值来验证。
                     'Hm_lvt_48b682d4885d22a90111e46b972e3268=1598648506; UUkey=465ad3b6b91f04034debc97d0c28797e; '
                     'UqZBpD3n3iJU=v1q6tbQwSDM6l;  eai-sess=ut6u3up65uto5vr2hqlmrpo7',
           'X-Requested-With': 'XMLHttpRequest',
           }

data = {
     
    'uid': '个人身份id 6位数',
    'date': str(datetime.date.today()).replace("-", ""),
    "ymtys": "0",    # 一码通颜色
    "sfzx": "1",     # 是否在校
    "tw": "1",   # 体温
    'address': '省 市××大学××学院`',
    'area': '省 市 ××区',
    'province': '省',  # 地址
    'city': '市',  # 城市
    # 伽利略定位系统详情
    'geo_api_info': "{\"type\":\"complete\",\"position\":{\"Q\":12.34,\"R\":12.34,\"lng\":12.34,\"lat\":12.34},\"location_type\":\"html5\",\"message\":\"Get ipLocation failed.Get geolocation success.Convert Success.Get address success.\",\"accuracy\":12,\"isConverted\":true,\"status\":1,\"addressComponent\":{\"citycode\":\"12\",\"adcode\":\"12\",\"businessAreas\":[],\"neighborhoodType\":\"\",\"neighborhood\":\"\",\"building\":\"\",\"buildingType\":\"\",\"street\":\"\",\"streetNumber\":\"\",\"country\":\"中国\",\"province\":\"省\",\"city\":\"市\",\"district\":\"区\",\"township\":\"\"},\"formattedAddress\":\"\",\"roads\":[],\"crosses\":[],\"pois\":[],\"info\":\"SUCCESS\"}",
    "sfcyglq": "0",  # 是否处于隔离期
    "sfyzz": "0",    # 是否有症状
    "qtqk": "",  # 其他情况
    "flag": 0,   #0:上午 1:下午  2:晚上
    "creator": "与uid一致",
    'created': str(int(time.time())),  # 创建时间
    "id": 1585267   
}

req = wechat(eval(requests.post(url=url, data=data, headers=headers).text)['m'])
print(req)

最后我们把该代码上传至服务器,使用vi命令编辑/etc/crontab文件,添加定时任务:

  • i:进入编辑模式
  • ESC:退出编辑模式
  • :wq:保存文件并退出

以上是最简单的文件编辑操作,相关其他操作可查询文档。还有gedit可以图形化编辑
添加内容为:
疫情通 晨午晚检(XDUer)_第1张图片
看倒数三行,第一个数字是分钟,第二个数字是小时,其他的就是按照相关填写。整句话的意思就是,在每天的8点钟以root的身份运行后边的命令,结果保存到log文件中。

注意的一点是,如果是服务器用root账号登录,那么上方写root,如果用的是Ubuntu系统且未登录root账号,那么此处就写登录的账号名称。
若是Ubuntu系统且不是root账户,可用su root命令先转化为root,然后再编辑文件。退出root用exit命令。

其实我不太会这个,参考了一篇博客:疫情通 代码
是个懒人所以考虑用server酱(绝对不是因为微信推送比邮箱接收要好很多)。

– by Rougamo

你可能感兴趣的:(随便瞎搞,小工具,python,linux)