当前位置: 首页 > article >正文

爬虫案例十js逆向合肥滨湖会展中心网

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

文章目录

  • 前言
  • 一、网站分析
  • 二、代码
  • 总结


前言

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

爬虫案例十js逆向合肥滨湖会展中心网


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

一、网站分析

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

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

二、代码

python代码

"""
网站:https://www.hfhuizhan.com/schedule#
目标:
"""

import requests
import execjs
import json
url = "https://www.hfhuizhan.com/prod-api/hfhz-exhibition/back/exhibition/listExhibitionNotPage"

headers = {
	"":""#自行添加头
}

form_data = {
    "yyyyMM": "2025-03"
}
j_fdata = json.dumps(form_data,separators=(',', ':'))
# print(j_fdata) # {"yyyyMM":"2025-03"}

f = open('hf.js',mode='r',encoding='utf-8')
js_code = f.read()
js = execjs.compile(js_code)
f_data = js.call("sr",j_fdata) # sY9u74F/amMJPfWSxqBnSCFIWBTU0OYMY3zydpKvpto=

form_data = {
    "data": f_data
}

resp = requests.post(url,headers=headers,data=json.dumps(form_data,separators=(',', ':')))
print(resp.text)
data = js.call("mr",resp.text)
print(data)
# {"code":200,"data":[{"status":0,"createdTime":"2024-10-18 09:15:17","updatedTime":"2025-02-06 11:19:26","createdBy":null,"createdName":null,"updatedBy":null,"updatedName":null,"id":"1847083998959865858","name":"2025年亚太橡塑展合肥站","title":null,"organizer":"安徽金诺国际会展服务有限公司","measure":10000.00,"undertaker":"安徽金诺国际会展服务有限公司","ip":null,"holdingForm":"1",

扣的js代码

var CryptoJS = require("crypto-js");
var jt = {};
jt.a = CryptoJS;

var Zt = "$shanghaidianqi$";
var Vt = "2023050814260000";
var sr = function(Xe) {
    var ot = jt.a.enc.Utf8.parse(Zt)
      , Kt = jt.a.enc.Utf8.parse(Vt)
      , kt = jt.a.AES.encrypt(Xe, ot, {
        iv: Kt,
        mode: jt.a.mode.CBC,
        padding: jt.a.pad.Pkcs7
    });
    return kt.toString()
}
var mr = function(Xe) {
    var ot = jt.a.enc.Utf8.parse(Zt)
      , Kt = jt.a.enc.Utf8.parse(Vt)
      , kt = jt.a.AES.decrypt(Xe, ot, {
        iv: Kt,
        mode: jt.a.mode.CBC,
        padding: jt.a.pad.Pkcs7
    })
      , yr = kt.toString(jt.a.enc.Utf8);
    return yr.toString()
}


总结

for (; ; )
    switch (Jt.prev = Jt.next) { 这是一个异步框架的特征..此处不要再单步调试了.
对每个case打上断点,在case里面可以单步调试
Jt.prev代表上一个case 来源
Jt.next代表下一个case 去哪一个case
Jt.sent代表上一个case的结果

http://www.kler.cn/a/579406.html

相关文章:

  • 【大模型基础_毛玉仁】1.4 语言模型的采样方法
  • mac本地安装运行Redis-单机
  • 【前端】【组件】【vue2】封装一个vue2的ECharts组件,不用借助vue-echarts
  • MySQL创建数据库和表,插入四大名著中的人物
  • 深度学习与普通神经网络有何区别?
  • Ai大模型day02神经网络+深度学习
  • Agentic系统:负载均衡与Redis缓存优化
  • 刷题记录(LeetCode738 单调递增的数字)
  • Web3 的隐私保护机制:如何保障个人数据安全
  • Redis渐进式遍历数据库
  • rpc和proto
  • 【YOLOv12改进trick】多尺度大核注意力机制MLKA模块引入YOLOv12,实现多尺度目标检测涨点,含创新点Python代码,方便发论文
  • 手写Tomcat:实现基本功能
  • CTFHub-FastCGI协议/Redis协议
  • 行式数据库与列式数据库区别
  • 【渗透测试】基于时间的盲注(Time-Based Blind SQL Injection)
  • elasticsearch是哪家的
  • 物联网中如何解决网络复杂性的问题
  • 爬虫去重:数据采集时如何进行去重,及去重优化策略
  • 2025最新Postman、Apipost和Apifox API 协议与工具选择方案解析