js脚本用腻了,写写python脚本试试
数据是通过fiddler抓包获得的
import requests
import time
url = 'https://pingan.ouc.edu.cn/ncov/wap/default/save'
headers = {
'Host': 'pingan.ouc.edu.cn',
'Connection': 'keep-alive',
'Content-Length': '2454',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.1.0; V1813A Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3209 MMWEBSDK/20220204 Mobile Safari/537.36 MMWEBID/9081 MicroMessenger/8.0.20.2100(0x28001455) Process/toolsmp WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Origin': 'https://pingan.ouc.edu.cn',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://pingan.ouc.edu.cn/ncov/wap/default/index',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
'Cookie': 'eai-sess=30bpcxxxxxxx56l4uga4551; UUkey=921785439xxxxxxxx5331dae756f; Hm_lvt_48b682d4885d22a90111e46b972e3268=1649384695; Hm_lpvt_48b682d4885d22a90111e46b972e3268=1649384695',
}
def getDate():
time_str = time.strftime('%Y%m%d')
date = int(time_str) - 1
print('date:',str(date))
return str(date);
data = {
'sfzgsxsx': '0',
'sfzhbsxsx': '0',
'ismoved': '0',
'sfjtfxdq': '0',
'sfjcfrhxdbr': '0',
'sfbqzwhz': '0',
'sfjcqzfyyshz': '0',
'sfcyglq': '0',
'sfjchbjwry': '0',
'szxqsfyqzbl': '0',
'zrhdgj': '',
'sfjcfjry': '0',
'szsqfsyq': '0',
'oucsfjzym': '1',
'oucwjzyy': '',
'oucyzjzpp': '1',
'oucyzjzwcsj': '',
'oucezjzpp': '1',
'oucezjzwcsj': '2021-06-10',
'oucezjzdd': '1',
'oucsfyjzjqz': '1',
'uid': '2xxx5',# 用户标识
'date': getDate(),#日期:天数减一??
'tw': '3',
'sfcxtz': '0',
'sfyyjc': '0',
'jcjgqr': '0',
'jcjg': '',
'sfjcbh': '0',
'sfcxzysx': '0',
'remark': '',
'address': '山东省青岛市崂山区沙子口街道敏行西路中国海洋大学崂山校区',
'area': '山东省 青岛市 崂山区',
'province': '山东省',
'city': '青岛市',
'geo_api_info': '{"status":0,"code":0,"info":"SUCCESS","position":[120.499508,36.165359],"location_type":"html5","message":"Get geolocation success.Convert Success.Get address success.","accuracy":48,"isConverted":false,"altitude":null,"altitudeAccuracy":null,"heading":null,"speed":null,"addressComponent":{"citycode":"0532","adcode":"370212","businessAreas":[],"neighborhoodType":"","neighborhood":"","building":"","buildingType":"","street":"松岭路","streetNumber":"290号","province":"山东省","city":"青岛市","district":"崂山区","township":"沙子口街道"},"formattedAddress":"山东省青岛市崂山区沙子口街道敏行西路中国海洋大学崂山校区","roads":[],"crosses":[],"pois":[]}',
'created': '1649468505',#getCreated(),#提交时间戳#应该是后台自己生成的,这里写死,与后台的数据不一样
'qksm': '',
'sfzx': '1',
'sfjcwhry': '0',
'gllx': '',
'glksrq': '',
'jcbhlx': '',
'jcbhrq': '',
'sftjwh': '0',
'sftjhb': '0',
'fxyy': '',
'bztcyy': '',
'fjsj': '0',
'sfjchbry': '0',
'sfjcqz': '',
'jcqzrq': '',
'jcwhryfs': '',
'jchbryfs': '',
'xjzd': '',
'szgj': '',
'sfsfbh': '0',
'jhfjrq': '',
'jhfjjtgj': '',
'jhfjhbcc': '',
'jhfjsftjwh': '0',
'jhfjsftjhb': '0',
'szsqsfybl': '0',
'sfsqhzjkk': '0',
'sqhzjkkys': '',
'sfygtjzzfj': '0',
'gtjzzfjsj': '',
'szcs': '',
'sfqrxxss': '1',
'id': '11679505',#getId(),#一直在变化,怎么办?#应该是后台自己生成的,这里写死,与后台的数据不一样
'gwszdd': '',
'sfyqjzgc': '',
'jrsfqzys': '',
'jrsfqzfy': '',
'szgjcs': ''
}
r = requests.post(url=url, headers=headers, data=data)
print(r.json())#{"e":0,"m":"操作成功","d":{}}
最后一次成功经历与之前的失败相比只有两处不同
1是Content-Length
2是Cookie
个人感觉不是Content-Length的原因,但因为一天只有一次测试机会,明天再测测这个字段。
我通过各种方式给cookie赋值,没想到成功的就只有最朴素的一种
cookie= {
"eai-sess": "13pnvtxxxxxxfgi8g61rek5",
"UUkey": "a7a9ebb9xxxxxxxx3cc14cd4d9a60",
"Hm_lvt_48b682d4885d22a90111e46b972e3268": "1649469063",
"Hm_lpvt_48b682d4885d22a90111e46b972e3268": "1649469063"
}
返回用户信息已失效
无 set-cookie
headers = {
...
'Cookie': '''{
"eai-sess":"30bpcxxxxxu7th56l4uga4551",
"UUkey":"92178543xxxxxxxe32db5331dae756f",
"Hm_lvt_48b682d4885d22a90111e46b972e3268":"1649384695",
"Hm_lpvt_48b682d4885d22a90111e46b972e3268":"1649384695"
}'''
}
直接复制粘贴,没有任何处理
headers = {
...
'Cookie': 'eai-sess=xxxxduuu7th56l4uga4551; UUkey=9217854392xxxxxx5331dae756f; Hm_lvt_48b682d4885d22a90111e46b972e3268=1649384695; Hm_lpvt_48b682d4885d22a90111e46b972e3268=1649384695',
}
人傻了
1.确实与Content-Length无关
2.竟然是因为单双引号的问题!
哎,一天只有一次测试机会,明天再测测。