目录

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

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

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


前言

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

js逆向中国五矿


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

一、网站分析

https://i-blog.csdnimg.cn/direct/1a6bd5ad00fb428b8d8ea2eb0ae6eee8.png#pic_center

https://i-blog.csdnimg.cn/direct/b826423d47134b8990773b0375a21242.png#pic_center

https://i-blog.csdnimg.cn/direct/cfdda4e615014662a96a87791d9a1f65.png#pic_center

二、代码

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)

https://i-blog.csdnimg.cn/direct/82ace289870b4bcb994c4e2a4e200859.png#pic_center