1,这个response是加密的

2,找到解密位置

3,ctrl+A全部复制到本地

4,搜索JSON.parse找到在本地的解密位置

5,将这个自执行函数插进去
javascript
!(function () {
// 判断flag是否为true,如果为true则不重复创建ws对象
if (window.flag) {
} else {
const websocket = new WebSocket('ws://127.0.0.1:8080')
// 创建一个标记用来判断是否创建套接字
window.flag = true;
// 接收服务端发送的信息
websocket.onmessage = function (event) {
var data = event.data
// 调用js解密
var res = b(data)
console.log(res)
// 发送解密数据给服务端
websocket.send(res)
}
}
}())
插入到如图所示的位置

6,替换文件



7,将源代码清空

8,将本地的代码注入

9,运行本地的代码
python
import json
import asyncio
import requests
import websockets
def get_encrypt_data(page):
headers = {
"Accept": "application/json, text/plain, */*",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Connection": "keep-alive",
"Referer": "https://jzsc.mohurd.gov.cn/data/company",
"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/142.0.0.0 Safari/537.36 Edg/142.0.0.0",
"accessToken;": "",
"sec-ch-ua": "\"Chromium\";v=\"142\", \"Microsoft Edge\";v=\"142\", \"Not_A Brand\";v=\"99\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"timeout": "30000",
"v": "231012"
}
url = "https://jzsc.mohurd.gov.cn/APi/webApi/dataservice/query/comp/list"
params = {
"pg": "1",
"page": page,
"total": "450"
}
response = requests.get(url, headers=headers, params=params).text
# print(response.text)
return response
async def echo(websocket):
for page in range(1, 5):
encrypt_data = get_encrypt_data(page)
await websocket.send(encrypt_data)
async def recv_msg(websocket):
while True:
recv_text = await websocket.recv()
print(json.loads(recv_text))
async def main_logic(websocket):
await echo(websocket)
await recv_msg(websocket)
start_server = websockets.serve(main_logic, '127.0.0.1', 8080)
loop = asyncio.get_event_loop() # 获取事件循环
loop.run_until_complete(start_server) # 运行服务
loop.run_forever() # 保持长连接
10,刷新网页后查看打印的结果(这个刷新网页的步骤不能省略)
