爬虫案例十四js逆向中国五矿

发布于:2025-03-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

js逆向中国五矿


提示:以下是本篇文章正文内容,下面案例可供参考

一、网站分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码

js代码

var JSEncrypt = require('node-encrypt-js')

var crypto = require("crypto") // nodejs自带
function md5(s){
    return crypto.createHash("md5").update(s).digest("hex");
}

function fn(e,r) {
    var t = new JSEncrypt();

    t.setPublicKey(r);

    e.sign = md5(JSON.stringify(e))
    e.timeStamp = new Date().getTime()
    var s = t.encryptLong(JSON.stringify(e))
    return s
}
// console.log(md5("123456"))
import requests
import json
import execjs
session = requests.session()
session.headers = {
	"":""# 请求头自行添加
}
url = "https://ec.minmetals.com.cn/open/homepage/public"
resp = session.post(url)
# print(resp.text)

p_url = "https://ec.minmetals.com.cn/open/homepage/zbs/by-lx-page"

data = {
    "businessClassfication": "",
    "dwmc": "",
    "inviteMethod": "",
    "lx": "ZGYS",
    "mc": "",
    "pageIndex": "1"
}

f = open('wk.js',mode='r',encoding='utf-8')
js_code = f.read()
f.close()
js = execjs.compile(js_code)
param = js.call("fn",data ,resp.text)
data = {
    "param":param
}
p_resp = session.post(p_url,json.dumps(data,separators=(',', ':')),headers={
    "Content-Type":"application/json",
})
print(p_resp.text)

在这里插入图片描述