广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >NodeJs如何模拟登陆正方教务
  • 680
分享到

NodeJs如何模拟登陆正方教务

2024-04-02 19:04:59 680人浏览 薄情痞子
摘要

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

这篇文章主要为大家展示了“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库,那就查看apiphp是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如何模拟登陆正方教务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: NodeJs如何模拟登陆正方教务

本文链接: https://www.lsjlt.com/news/79424.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • NodeJs模拟登陆正方教务
    网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,Python,Java,.Net 加上我自己尝试的NodeJs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用 Node...
    99+
    2022-06-04
    正方 教务 NodeJs
  • NodeJs如何模拟登陆正方教务
    这篇文章主要为大家展示了“NodeJs如何模拟登陆正方教务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“NodeJs如何模拟登陆正方教务”这篇文章吧。1. 收集...
    99+
    2022-10-19
  • 如何用Python模拟163登陆获取邮件列表
    利用cookielib和urllib2模块模拟登陆163的例子有很多,近期看了《python模拟登陆163邮箱并获取通讯录》一文,受到启发,试着对收件箱、发件箱等进行了分析,并列出了所有邮件列表及状态,包括发件人、收件人、主题、发信时间、已...
    99+
    2023-06-17
  • win8自动登录如何设置 2种WIN8自动登陆设置方法教程
    要实现WIN8自动登陆,其实方法有很多,并且步骤也不多,以下为大家详细介绍两种实现WIN8开机自动登陆的方法:win8自动登陆设置方法一:打开WIN8开始“开始运行”对话框,在里面输...
    99+
    2022-06-04
    如何设置 自动登录 方法
  • 云服务器如何登陆谷歌账号密码设置教程
    如果您要登陆谷歌账号,通常需要通过两种方式:第一种是通过谷歌账号的邮箱或手机号码进行验证;第二种是通过谷歌账号的登录界面进行验证。以下是如何通过邮箱或手机号码进行验证的具体步骤: 注册谷歌账号 注册谷歌账号需要提供用户名、密码和邮箱地...
    99+
    2023-10-28
    账号 密码 服务器
  • 云服务器如何安装安卓模拟器教程
    首先,需要确认安卓模拟器是否支持Google Play商店,可以尝试在谷歌网站上搜索该模拟器进行下载。 下载Google Play后,我们可以在模拟器上进行安装,一般会出现一个窗口,可以选择安装文件格式,例如Firefox或Safari,...
    99+
    2023-10-26
    模拟器 服务器 教程
  • 云服务器如何安装安卓模拟器游戏教程
    首先,需要将下载的文件解压缩,可以使用命令行工具(例如kzip、rar等)或在线解压器(例如GitHub、Subscriber等)完成。 在终端中输入"sudo apt-get install zsh system32"命令,安装zsh。...
    99+
    2023-10-26
    服务器 教程 模拟器游戏
  • 云服务器如何安装虚拟显卡设置方法教程
    首先,需要下载云服务器的虚拟显卡设置软件,可以在官网上进行下载。 下载完成后,在软件中选择“云服务器管理”菜单,点击“设置”。 在设置页面中可以看到当前云服务器的虚拟显卡配置信息,以及虚拟显卡的安装路径。 选择“虚拟显卡设置”按钮,可以打...
    99+
    2023-10-27
    显卡 服务器 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作