1. python部分:
# -*- coding:utf-8 -*-# @Time : 2024/4/14 17:57
# @Author : 快乐的小猴子
# @Version :
# @Function : import requests
import json
import subprocess
from functools import partial # 专门用来固定参数的
subprocess.Popen = partial(subprocess.Popen, encoding = "utf-8")
import execjs
with open('建设库.js', 'r', encoding='utf-8') as f:json_data = f.read()context = execjs.compile(json_data)
res = context.call('main')url = 'https://capi.jiansheku.com/nationzj/jskBid/page'
headers = {"Content-Type": "application/json","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36","Referer": "https://www.jiansheku.com/","Sign": res['Sign'],"Timestamp": str(res['Timestamp'])
}
# print(headers)
# exit()
data = {"page": {"page": 1,"limit": 20,"field": ""},"jskBidQueryDto": {"province": "","city": "","county": "","tenderStage": "","tenderingManner": "","queryScope": "","projectType": "","subjectMatter": "","source": "","phonePoint": ""},"keyword": "","keywordNot": ""
}
resp = requests.get(url, headers=headers, data=json.dumps(data, separators=(',', ':')))
print(resp.json())
2. JavaScript部分:
let crypto = require('crypto');
function do_md5(e) {return crypto.createHash('md5').update(e.toString()).digest('hex');
}
var f = (new Date).getTime();
var data = {"page": {"page": 1,"limit": 20,"field": ""},"jskBidQueryDto": {"province": "","city": "","county": "","tenderStage": "","tenderingManner": "","queryScope": "","projectType": "","subjectMatter": "","source": "","phonePoint": ""},"keyword": "","keywordNot": ""
};
var ku = function e(t) {var n;if (Array.isArray(t)) {for (var r in n = new Array,t) {var o = t[r];for (var i in o)null == o[i] ? delete t[r][i] : Array.isArray(t[r][i]) && e(t[r][i])}return n = t,JSON.stringify(n).replace(/^(\s|")+|(\s|")+$/g, "")}return n = t && t.constructor === Object ? JSON.stringify(t) : t
};
var Ou = function(e) {var t = new Array, n = 0;for (var i in e)t[n] = i,n++;return t.sort()
};
var Cu = function(e) {var t = Ou(e), n = "";for (var i in t) {var r = ku(e[t[i]]);null != r && "" != r.toString() && (n += t[i] + "=" + r + "&")}return n
};
var Su = function(e, t, time) {var n = t + e + time;return n = do_md5(n)
};
function main() {var sign = (param = data,time = f,t = Cu(param),Su("ghaepVf6IhcHmgnk4NCTXLApxQkBcvh1", Su("mwMlWOdyM7OXbjzQPulT1ndRZIAjShDB", Su("ZuSj0gwgsKXP4fTEz55oAG2q2p1SVGKK", t, time), time), time));return {'Sign': sign, 'Timestamp': f,}
};// console.log(main());
执行结果截图: