我的编程空间,编程开发者的网络收藏夹
学习永远不晚

NodeJs如何模拟登陆正方教务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

NodeJs如何模拟登陆正方教务

这篇文章主要为大家展示了“NodeJs如何模拟登陆正方教务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“NodeJs如何模拟登陆正方教务”这篇文章吧。

1. 收集模拟登陆信息

这一步最基础,通过 chrome 的 network 就可以查看跳转的 post 或者 get 请求以及参数了。

注意勾选Preserve log 否则页面跳转你是看不到请求的。

NodeJs如何模拟登陆正方教务

注意点:出现 (unable to decode value) 表示经过 gbk 转码了,另外就是post的数据格式是 formdata

NodeJs如何模拟登陆正方教务

2. 登录过程中 302 重定向

之前利用 PHP 就死在 重定向上,没有搞定,总是会出现 object moved to here.不同语言都有相关的解决办法的,你用js库,那就查看API,php是curl有这个方法的

3. NodeJs 自身

1、回调-----使用了 async 这个库来解决回调。

2、异常处理-----express 框架就好了,自定义异常中间件,省心。

3、容易崩溃----- 使用 PM2 就好。

4、由于这里的使用场景相当于是每个用户登录后,后端都要发送一次模拟登陆,如果碰到长时间目标网站没有响应,那么我采取了重试当前操作的一种做法,所以如果响应时间很长,那么是否可以先返回一个 loading 的状态,然后执行完之后再通知前端?

这里我使用了 Socket-io 来搞定后端像前端定向通知的这么一种做法。

但是 socketio也有坑,就是服务端知道client id是可以发送数据给某一个客户端的,但是前端如果一刷新页面就会生成一个新的 client id,鉴于前端使用的单页框架,在应用启动的时候就向服务端请求一个 token 然后 socket 在通信的时候带上这个 token 和client id,并且保存在了 redis 中,这样当后端的异步请求抓取到数据的时候,只要通过这个 token 查找对应的client id 即可。

5、代码问题

刚开始犯了一个错,就是拿客户端编程的思维去写 Node 结果发现 当两个用户同时发送请求后,会导致变量数据发生冲突。换句话说,如果一开始定义了一个 aa 变量  A 用户发送请求 写入了数据到 aa ,B 用户此时也是操作 了 aa 那么这个 aa其实就是出问题了,也就是说当你启动 NodeJs 之后,你所写的全局变量将会永远存在(很正常...)。

暂时解决的办法就是 私有化,在入口统一使用了 new 的方式,这样无论你并发多少个请求,相互之间的数据都不会受到影响。 不知道还有没有更好的实现方式。

以上是“NodeJs如何模拟登陆正方教务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

NodeJs如何模拟登陆正方教务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

NodeJs模拟登陆正方教务

网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,Python,Java,.Net 加上我自己尝试的NodeJs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用 Node 碰到的一些坑,以及一些我自己的解
NodeJs模拟登陆正方教务
2022-06-04

如何用Python模拟163登陆获取邮件列表

利用cookielib和urllib2模块模拟登陆163的例子有很多,近期看了《python模拟登陆163邮箱并获取通讯录》一文,受到启发,试着对收件箱、发件箱等进行了分析,并列出了所有邮件列表及状态,包括发件人、收件人、主题、发信时间、已
2023-06-17

win8自动登录如何设置 2种WIN8自动登陆设置方法教程

要实现WIN8自动登陆,其实方法有很多,并且步骤也不多,以下为大家详细介绍两种实现WIN8开机自动登陆的方法:win8自动登陆设置方法一:打开WIN8开始“开始运行”对话框,在里面输入:“Rundll32
2022-06-04

云服务器如何登陆谷歌账号密码设置教程

如果您要登陆谷歌账号,通常需要通过两种方式:第一种是通过谷歌账号的邮箱或手机号码进行验证;第二种是通过谷歌账号的登录界面进行验证。以下是如何通过邮箱或手机号码进行验证的具体步骤:注册谷歌账号注册谷歌账号需要提供用户名、密码和邮箱地址。如果您是第一次注册谷歌账号,建议您先进行用户名和密码的设置。用户名可以是任意一个英文或
云服务器如何登陆谷歌账号密码设置教程
2023-10-28

云服务器如何安装安卓模拟器教程

首先,需要确认安卓模拟器是否支持GooglePlay商店,可以尝试在谷歌网站上搜索该模拟器进行下载。下载GooglePlay后,我们可以在模拟器上进行安装,一般会出现一个窗口,可以选择安装文件格式,例如Firefox或Safari,然后点击"立即安装"按钮。在安装完成之后,你将获得一个安装程序,可以选择安装到你的电脑或手机上,安装完成后即可在模拟器中运行该程序。安装成功以后,你需要重新启动
2023-10-26

软考机考模拟系统官方入口在哪里?如何登录

软考机考模拟系统的官方入口在软考办官网。考生打开官网之后,在首页的服务园地中,就能看到“模拟练习”。点击模拟练习按照要求进行登录,就进入软考机考模拟系统了。
软考机考模拟系统官方入口在哪里?如何登录
2024-08-24

云服务器如何安装安卓模拟器游戏教程

首先,需要将下载的文件解压缩,可以使用命令行工具(例如kzip、rar等)或在线解压器(例如GitHub、Subscriber等)完成。在终端中输入"sudoapt-getinstallzshsystem32"命令,安装zsh。注意安装完成后需要在终端中输入登录用户名、密码等命令进行验证。在终端中输入以下命令进行安装:zshinstall.exe-y/restart/sudo安
2023-10-26

云服务器如何安装虚拟显卡设置方法教程

首先,需要下载云服务器的虚拟显卡设置软件,可以在官网上进行下载。下载完成后,在软件中选择“云服务器管理”菜单,点击“设置”。在设置页面中可以看到当前云服务器的虚拟显卡配置信息,以及虚拟显卡的安装路径。选择“虚拟显卡设置”按钮,可以打开云服务器的设置界面。在设置页面中,可以看到虚拟显卡的驱动安装选项,并可以进行相关的设置。虚拟显卡的设置完成后,可以点击“开始使用”按钮来启动云服务器的虚拟显卡功能。完成以上步骤..
2023-10-27

编程热搜

目录