JsRpc终极指南:如何免抠代码远程调用浏览器方法
JsRpc终极指南:如何免抠代码远程调用浏览器方法
【免费下载链接】JsRpc远程调用(rpc)浏览器方法,免去抠代码补环境项目地址: https://gitcode.com/gh_mirrors/js/JsRpc
JsRpc是一款强大的远程调用工具,它能帮助开发者实现免抠代码远程调用浏览器方法,轻松解决复杂的前端环境依赖问题。通过JsRpc,你可以直接在浏览器中执行JavaScript代码并获取结果,无需深入理解和复制复杂的前端代码逻辑。
什么是JsRpc?
JsRpc(JavaScript Remote Procedure Call)是一个创新的远程调用解决方案,它通过WebSocket建立服务器与浏览器之间的通信桥梁,让你能够在外部程序中轻松调用浏览器环境中的JavaScript方法。这意味着你不再需要费力地从网页中抠取和还原复杂的JavaScript代码,特别是那些涉及加密、解密或特殊环境依赖的函数。
JsRpc的核心优势
- 免抠代码:直接利用浏览器中原生的JavaScript环境和函数,无需提取和还原复杂代码
- 环境一致性:在真实浏览器环境中执行代码,确保结果与网页中的表现完全一致
- 简单易用:通过简洁的API接口即可实现与浏览器的通信和交互
- 灵活扩展:支持多种调用方式和参数传递,满足不同场景需求
快速开始:JsRpc的安装与配置
准备工作
在开始使用JsRpc之前,你需要:
- 克隆JsRpc仓库:
git clone https://gitcode.com/gh_mirrors/js/JsRpc - 确保你的系统已安装Go环境(用于编译服务器端代码)
- 准备一个现代浏览器(Chrome、Firefox等)
编译并启动服务器
进入项目目录后,你可以通过以下步骤启动JsRpc服务器:
- 编译服务器代码:
go build -o jsrpc main.go - 运行服务器:
./jsrpc
启动成功后,你将看到类似以下的界面:
__ _______..______ .______ ______ | | / || _ \ | _ \ / | | | | (----`| |_) | | |_) | | ,----' .--. | | \ \ | / | ___/ | | | `--' | .----) | | |\ \----.| | | `----. \______/ |_______/ | _| `._____|| _| \______|服务器默认会在12080端口监听连接请求。
JsRpc核心API介绍
JsRpc提供了一系列简单而强大的API接口,让你能够轻松与浏览器进行交互:
/list:查看当前连接的WebSocket服务(GET请求)/ws:浏览器注入WebSocket连接的接口(WebSocket协议)/wst:WebSocket测试接口,发送什么就返回什么(WebSocket协议)/go:获取数据的接口,支持GET和POST请求/execjs:传递JavaScript代码给浏览器执行,支持GET和POST请求/page/cookie:直接获取当前页面的cookie(GET请求)/page/html:获取当前页面的HTML内容(GET请求)
这些API接口为你提供了与浏览器交互的各种方式,满足不同的使用场景需求。
详细使用步骤
步骤1:注入JS环境
首先,你需要在浏览器中注入JsRpc的客户端环境。打开浏览器的开发者工具(通常按F12),切换到控制台(Console)选项卡,然后复制resouces/JsEnv_Dev.js文件中的内容并粘贴到控制台中执行。
步骤2:建立连接
注入环境后,使用以下代码建立与服务器的连接:
// 注入环境后连接通信 var demo = new HlClient("ws://127.0.0.1:12080/ws?group=myGroup");其中,group参数用于对连接进行分组,方便管理多个客户端连接。
步骤3:远程调用方式
JsRpc提供了多种远程调用方式,满足不同的使用场景:
方式1:直接执行JS代码
通过/execjs接口,你可以直接传递JavaScript代码让浏览器执行:
import requests js_code = """ (function(){ console.log("test") return "执行成功" })() """ url = "http://localhost:12080/execjs" data = { "group": "myGroup", "code": js_code } res = requests.post(url, data=data) print(res.text)方式2:调用预注册方法
你可以在浏览器中预先注册方法,然后通过接口调用:
- 在浏览器中注册方法:
// 注册一个无参方法 demo.regAction("hello", function (resolve) { var result = "好困啊" + parseInt(Math.random() * 1000); resolve(result); }) // 注册一个带参方法 demo.regAction("hello2", function (resolve, param) { var base64Result = btoa(param); resolve(base64Result); })- 通过HTTP接口调用这些方法:
http://127.0.0.1:12080/go?group=myGroup&action=hello http://127.0.0.1:12080/go?group=myGroup&action=hello2¶m=123456方式3:获取页面信息
JsRpc还提供了便捷的接口直接获取页面信息:
import requests # 获取当前页面HTML resp = requests.get("http://127.0.0.1:12080/page/html?group=myGroup") # 获取当前页面Cookie resp = requests.get("http://127.0.0.1:12080/page/cookie?group=myGroup")高级用法:多参数传递与POST请求
对于更复杂的场景,你可以使用POST方式传递多个参数:
- 在浏览器中注册处理多参数的方法:
function processData(User, Status) { return User + "说:" + Status; } demo.regAction("hello3", function (resolve, param) { var result = processData(param["user"], param["status"]); resolve(result); })- 使用POST方式调用:
import requests import json url = "http://127.0.0.1:12080/go" data = { "group": "myGroup", "action": "hello3", "param": json.dumps({"user": "用户", "status": "正在使用JsRpc"}) } res = requests.post(url, data=data) print(res.text)结语
JsRpc为开发者提供了一种简单而强大的方式来远程调用浏览器中的JavaScript方法,彻底解决了抠取和还原复杂前端代码的痛点。无论是进行Web自动化测试、前端逆向分析还是构建复杂的Web应用,JsRpc都能大大提高你的工作效率。
通过本指南,你已经了解了JsRpc的基本概念、安装配置和使用方法。现在,是时候开始探索JsRpc在你的项目中的应用了!如果你在使用过程中遇到任何问题,可以查阅项目的config/config.go配置文件或参考更详细的文档。
JsRpc,让浏览器远程调用变得前所未有的简单!🚀
【免费下载链接】JsRpc远程调用(rpc)浏览器方法,免去抠代码补环境项目地址: https://gitcode.com/gh_mirrors/js/JsRpc
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
