确定'ts'是不是时间戳
import requests
headers = { 'Accept': 'application/json, text/plain, */*', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Content-Type': 'application/json;charset=UTF-8', 'Origin': 'https://ggzyfw.fujian.gov.cn', 'Referer': 'https://ggzyfw.fujian.gov.cn/business/list/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 'portal-sign': 'fd0465a6197af782a7252c2b902b3b16', 'sec-ch-ua': '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', }
json_data = { 'pageNo': 1, 'pageSize': 20, 'total': 0, 'AREACODE': '', 'M_PROJECT_TYPE': '', 'KIND': 'GCJS', 'GGTYPE': '1', 'PROTYPE': '', 'timeType': '6', 'BeginTime': '2022-09-26 00:00:00', 'EndTime': '2023-03-26 23:59:59', 'createTime': [], 'ts': 1679804975171, }
response = requests.post('https://ggzyfw.fujian.gov.cn/FwPortalApi/Trade/TradeInfo', headers=headers, json=json_data)
确定'ts'是不是时间戳?
1.复制url路径 /FwPortalApi/Trade/TradeInfo 源代码 添加XHR断点(粘贴) 翻页 单步调试
调试不出来
2.全局搜索ts或者路径 找到js 右键在来源面板打开 继续搜索路径再搜索ts return e["ts"] = (new Date).getTime(),
证明:ts 是本地时间戳 数一下是不是13位 time.time()*1000
头部参数逆向.js
const crypto = require('crypto')
// 导包
function d(t) {
for (var e in t)
"" !== t[e] && void 0 !== t[e] || delete t[e];
var n = "3637CB36B2E54A72A7002978D0506CDF" + l(t);
return MD5Encrypt(n).toLocaleLowerCase()
}
// return s(n).toLocaleLowerCase() s是MD5 把s改成MD5Encrypt
// var n = r["d"] + l(t); 把r["d"]改成'3637CB36B2E54A72A7002978D0506CDF'
function u(t, e) {
return t.toString().toUpperCase() > e.toString().toUpperCase() ? 1 : t.toString().toUpperCase() == e.toString().toUpperCase() ? 0 : -1
}
function l(t) {
for (var e = Object.keys(t).sort(u), n = "", a = 0; a < e.length; a++)
if (void 0 !== t[e[a]])
if (t[e[a]] && t[e[a]]instanceof Object || t[e[a]]instanceof Array) {
var i = JSON.stringify(t[e[a]]);
n += e[a] + i
} else
n += e[a] + t[e[a]];
return n
}
// md5有问题
function MD5Encrypt(text) {
return crypto.createHash(algorithm:'md5').update(text).digest(encoding:'hex');
}
paraames = {
"ts": (new Date).getTime(),
// "ts": 1679822578103, 把1679822578103改成(new Date).getTime()
"pageNo": 2,
"pageSize": 20,
"total": 3941,
"AREACODE": "",
"M_PROJECT_TYPE": "",
"KIND": "GCJS",
"GGTYPE": "1",
"PROTYPE": "",
"timeType": "6",
"BeginTime": "2022-09-26 00:00:00",
"EndTime": "2023-03-26 23:59:59",
"createTime": []
}
console.log(d(paraames))

浙公网安备 33010602011771号