1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
| import datetime import requests import pickle
upload_url = "https://xxcapp.xidian.edu.cn/ncov/wap/default/save" default_headers = { "Accept": "application/json, text/javascript, */*; q=0.01", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", "User-Agent": "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55", "X-Requested-With": "XMLHttpRequest", "Origin": "https://xxcapp.xidian.edu.cn", "Referer": "https://xxcapp.xidian.edu.cn/ncov/wap/default/index" } upload_information = { "szgjcs": "", "szcs": "", "szgj": "", "zgfxdq": "0", "mjry": "0", "csmjry": "0", "tw": "2", "sfcxtz": "0", "sfjcbh": "0", "sfcxzysx": "0", "qksm": "", "sfyyjc": "0", "jcjgqr": "0", "remark": "", "address": "这是你的地址", "geo_api_info": "这里面是你的gps信息", "area": "这是你的省市县", "province": "这是你的省", "city": "这是你的市", "sfzx": "0", "sfjcwhry": "0", "sfjchbry": "0", "sfcyglq": "0", "gllx": "", "glksrq": "", "jcbhlx": "", "jcbhrq": "", "bztcyy": "", "sftjhb": "0", "sftjwh": "0", "sfjcjwry": "0", "jcjg": "", "date": "这是日期,我的代码为自动更改日期,这里不用管", "uid": "这是你的uid", "created": "这是一个编号", "id": "这是你的个人id", "gwszdd": "", "sfyqjzgc": "", "jcqzrq": "", "sfjcqz": "", "jrsfqzys": "", "jrsfqzfy": "", "szsqsfybl": "0", "sfsqhzjkk": "", "sqhzjkkys": "", "sfygtjzzfj": "", "gtjzzfjsj": "", "ismoved": "0" }
def get_cookie_from_web(student_id, password): cookie_file_path = 'cookie.inf' print("程序网络检验开始") try: requests.get("https://xxcapp.xidian.edu.cn/site/ncov/xidiandailyup", timeout=5) except: print("程序错误:无法连接网络") return False print("程序网络检验:成功")
print("程序cookie检验") login_check_headers = { "Accept": "application/json, text/plain, */*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36", "X-Requested-With": "XMLHttpRequest" } login_check_url = "https://xxcapp.xidian.edu.cn/uc/wap/login/check" r = requests.post(login_check_url, data={"username": student_id, "password": password}, headers=login_check_headers) if r.status_code == 200: if r.json()['e'] == 0: f = open(cookie_file_path, 'wb') pickle.dump(r.cookies, f) print("程序cookie检验:成功") return True else: print(r.json()['m']) print("程序错误:post成功,得到错误响应,请检查密码与学号") return False else: print("程序错误:post失败,无法得到有效响应")
def get_cookie_from_local(): f = open("cookie.inf", 'rb') return pickle.load(f)
def upload(): now = datetime.datetime.now() upload_information['date'] = now.strftime("%Y%m%d")
r = requests.post(upload_url, cookies=get_cookie_from_local(), headers=default_headers, data=upload_information) print("上传开始") print(datetime.datetime.now()) print(r.text) if r.json()['e'] == 0: print("上报成功") print("上传结束") return True else: print("上传失败") print("失败原因",r.json()['m']) print("上传结束") return False
|