[007]爬虫系列 | RPC调用简单示例
一、背景
至于RPC是什么,本篇文章不做详细解答!请自行百度查看。
二、效果
远程服务器发送参数,本地客户端调用相关主函数,将返回结果发送给服务器!
输入相关变量返回相关Token!!!
三、实现
本文主要通过Websocket实现RPC调用!
3.1编写Websocket服务端
process.stdin.setEncoding('utf8');
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({ port: 8181 });// 读取输入
function readlineSync() {return new Promise((resolve, reject) => {process.stdin.resume();process.stdin.on('data', function (data) {process.stdin.pause(); // stops after one line readsresolve(data);});});
}
wss.on('connection', function (ws) {console.log('client connected');ws.on('message', function (message) {// var stockRequest = JSON.parse(message); //根据请求过来的数据来更新。console.log("收到消息:", message.toString());});!(async function(){while(true) {let url = await readlineSync();ws.send(url); // 发送数据}})()
});
3.2Hook(编写Websocket客户端)
Hook!请看上一篇文章《[007]爬虫系列 | 没有油候&Fiddler如何Hook?!!!》
代码如下:
!(function(){window.tw_test = a;window.tw_n = n;var ws = new WebSocket("ws://127.0.0.1:8181");ws.onopen = function(res){}ws.onmessage = function(res) {console.log(res.data)ws.send(window.tw_test.call(window.tw_n, {url:res.data}));}
})()
四、CORS问题解决
有些时候,Hook会报错:CORS Error!解决方案如下:
添加:--user-data-dir="c:\ChromeDebug" --test-type --disable-web-security
[007]爬虫系列 | RPC调用简单示例相关推荐
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(下)
一.备注 在阅读此文章前,请先阅读前两篇 <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第 ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)
一.备注 在阅读此文章前,请先阅读前一篇<[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> 二.找参数来源(二) 在前一篇文章中,我们找出了Cookie ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie
一.题目 链接: <猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie> 二.分析 按照以往习惯,我们先按F12打开控制台,Network抓包,勾选preserve log ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)
一.备注 由于此题目比较复杂(个人感觉哈!大佬别喷!),所以博主分析了一个上午,也就只能得出m的生成,所以还是分两天写吧!!! 二.题目 http://match.yuanrenxue.com/mat ...
- [007]爬虫系列 | so-json 过本地反调试
一.背景 js[最牛加密]:https://www.sojson.com/jsobfuscator.html 本文主要介绍如何过: 正则防止格式化 禁止控制台输出 死循环 setInterval函数 ...
- [007]爬虫系列 | 没有油候Fiddler如何Hook?!!!
一.找到首次加载的js 用源码面板打开 二.第一行打断点 格式化: 三.刷新网页 成功断点&执行hook!: 代码如下: (function() {'use strict';var cooki ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
- C# 创建、部署和调用WebService的简单示例
C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...
- rabbitmq 简易RPC调用示例
rabbitmq 简易RPC调用示例(后附go代码)) rabbimq 库代码获取 用例概述 客户端 服务端 rabbimq 库代码获取 https://github.com/streadway/am ...
- 使用Dubbo实现简单的RPC调用(Spring配置文件版)
更多文章和资源欢迎访问:SuperCoder Blog 文章目录 更多文章和资源欢迎访问:[SuperCoder Blog](https://supercoder.com.cn) 前言 一.Dubbo ...
最新文章
- 洛谷——P1098 字符串的展开
- python使用函数的目的_python之函数基本使用
- Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
- 哈夫曼编解码(C语言)
- Python笔记-Collection中Iterable、Iterator和Generator的区别
- JSP四大域对象与九大内置对象
- objective-c(初始化)
- 纠正Pandas中的缺失数据
- [转载] [转载] python中的Numpy库入门
- 需求方案撰写之售前方案
- sqlserver 获取当前操作的数据库名称
- Cleaning Bad Data in R R语言数据清理教程 Lynda课程中文字幕
- java 读取gzip_Java读取GZIP
- 百度导航5.0之后的坑
- 【转】电阻屏和电容屏之 二
- excel pandas 画图_pandas 进行excel绘图
- 三剑客 文本处理awk
- 学校关于配备计算机教室的申请,学校多媒体教室的申请书
- 风火之旅 需要的信息保存
- 关于灰度共生矩阵的一点知识(MATLAB)
热门文章
- ubuntu中录制gif
- PDF Reader Pro - 一款全能型PDF文件编辑器
- 华为发布鸿蒙Beta版公测,华为发布鸿蒙OS 2.0手机开发者Beta版:P40、Mate 30系列可申请公测...
- POS58打印机的操作
- 常用HSQL汇总(不定时添加)
- 免费视频素材下载(不定时更新)
- C语言 三角函数 时钟周期,三角函数的周期公式
- windows 下 Bitvise SSH Client 登陆服务器 显示matlab图形界面
- 深度学习中的激活函数及其作用
- 在css表格怎么居中对齐,css居中和对齐方法集锦