昨天看到个 rpc框架
对于我这种新入门的爬虫觉得还行
抠不下来就可以使用rpc 之前我都是websockets自己写了个交互(最简单的破解方法)
点击进入下载相关驱s动 看下开发文档
function guid() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
var client = new SekiroClient("wss://sekiro.virjar.com/business/register?group=ws-group-2&clientId=" + guid());
client.registerAction("clientTime", function (request, resolve, reject) {
resolve("SekiroTest:" + new Date());
});
client.registerAction("executeJs", function (request, resolve, reject) {
var code = request['code'];
if (!code) {
reject("need param:{code}");
return;
}
code = "return " + code;
console.log("executeJs: " + code);
try {
var result = new Function(code)();
resolve(result);
} catch (e) {
reject("error: " + e);
}
});
这个是 官网的例子 client.registerAction(“事件名字”,(请求返回的字段,提交,错误反馈)=>{里面写要调用的值和 发送的参数})
还需要在页面里插入 https://sekiro.virjar.com/sekiro-doc/assets/sekiro_web_client.js
写好的代码
要不然就失败
网页里要引出加密参数 到全局 便于调用
python只要请求url 就会把浏览器的加密参数json 返回过来
用油猴插件注入
// ==UserScript==
// @name websocket
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://web.xingtaosoft.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=xingtaosoft.com
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Your code here...
var sockJs = document.createElement("script")
sockJs.src = "https://sekiro.virjar.com/sekiro-doc/assets/sekiro_web_client.js"
document.body.appendChild(sockJs);
function sek_start() {
function guid() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
var client = new SekiroClient("ws://127.0.0.1:5620/business-demo/register?group=test&clientId=" + guid());
client.registerAction("elx", function (request, resolve, reject) {
try {
var _sid = request['sid'];
var result = JSON.stringify(window.lx(_sid))
resolve(result)
} catch (e) {
reject("error" + e)
}
});
}
setTimeout(sek_start,2000)
})();
import requests
params = {
'group':'test',
'action':'zha',
'sid':'387B1F86B6F50E8F9E5453ADC73ABF45'
}
l = requests.get("http://127.0.0.1:5620/business-demo/invoke",params=params).json()
print(l)
这里就不上解密的图了 就粗略讲下 有兴趣自己了解
仅供学习交流
© 版权声明
THE END
- 最新
- 最热
只看作者