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

NodeJs模拟登陆正方教务

正方教务NodeJs 2022-06-04 17:06:50 3486人浏览 安东尼
摘要

网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,python,Java,.net 加上我自己尝试的nodejs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用 node

网上已经有很多关于模拟登陆正方教务的作品了,基于 PHPpython,Java,.net 加上我自己尝试的nodejs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用 node 碰到的一些坑,以及一些我自己的解决思路。

1. 收集模拟登陆信息

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

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

查看图片

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

查看图片

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 的方式,这样无论你并发多少个请求,相互之间的数据都不会受到影响。 不知道还有没有更好的实现方式。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程网!

--结束END--

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

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

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

猜你喜欢
  • NodeJs模拟登陆正方教务
    网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,Python,Java,.Net 加上我自己尝试的NodeJs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用 Node...
    99+
    2022-06-04
    正方 教务 NodeJs
  • NodeJs如何模拟登陆正方教务
    这篇文章主要为大家展示了“NodeJs如何模拟登陆正方教务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“NodeJs如何模拟登陆正方教务”这篇文章吧。1. 收集...
    99+
    2024-04-02
  • Python 模拟登陆
    import urllibimport urllib.requestimport gzipimport httpimport http.cookiejar#定义一个方法用于生成请求头信息,处理cookie  def getOpener(he...
    99+
    2023-01-31
    Python
  • bs4+mechanize模拟登陆
    Mechanize常用函数.CookieJar():设置cookie .Browser():打开浏览器 .addheaders():User-Agent,用来欺骗服务器的 .open():打开网页,按照官网描述...
    99+
    2023-01-30
    mechanize
  • 通过session模拟登陆
    import requests # 这个练习对比的是上一个登陆练习,这个是不用自己传入cookie参数,而是利用session方法登陆 # 实例化一个session session = requests.session() # 使用...
    99+
    2023-01-30
    session
  • python模拟登陆Github示例
    首先进入github登录页:https://github.com/login 输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Session请求,找到其请求的URL与Form ...
    99+
    2023-01-31
    示例 python Github
  • Python 爬虫模拟登陆知乎
    在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下p...
    99+
    2022-06-04
    爬虫 Python
  • python怎么模拟登陆网站
    这篇文章主要介绍了python怎么模拟登陆网站,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用已有cookie登陆使用浏览器登陆,获取浏览器中的cookie信息,来进行登陆...
    99+
    2023-06-14
  • 通过cookies信息模拟登陆
    1 import requests 2 3 # 这个练习演示的是通过传入cookie信息模拟登陆,这样操作的前提是需要预先在浏览器登陆账户抓包得到cookie字段信息 4 5 url = "http://www.360wa...
    99+
    2023-01-30
    信息 cookies
  • python模拟登陆网站的示例
    目录使用已有cookie登陆登陆获取cookieform datarequest payload登陆后用session保持登陆状态调用浏览器登陆使用已有cookie登陆 使用浏览器...
    99+
    2024-04-02
  • python项目实战:模拟登陆CSDN
    前言今天为大家介绍一个利用Python模拟登陆CSDN的案例,虽然看起来很鸡肋,有时候确会有大用处,在这里就当做是一个案例练习吧,提高自己的代码水平,也了解Python如何做到模拟登陆的,下面来看代码导入库...
    99+
    2023-06-02
  • Selenium模拟登陆百度(带验证码)
    利用Selenium模拟登陆解决验证码的问题验证码解决方案有很多种:1  通过第三方的打码平台,识别率高...一般都是收费的,价格还不便宜2  自己通过切图,再结合图片识别的库,去识别验证码... 简单的验证码识别率还可...
    99+
    2023-01-30
    验证码 Selenium
  • Python模拟登陆及个人经验(五)
    实验名称:模拟登陆实验要求:输入用户名密码认证成功显示欢迎信息输错三次锁定用户 思路:用户输入username判断username是否为真(文件)。否:提示用户不存在;是:判断是否锁定(文件)如果用户锁定提示:该用户已锁定;没锁定就输入密码...
    99+
    2023-01-31
    经验 Python
  • 使用python模拟浏览器实现登陆
    前言 你有没有想过,当我们在某个网站上登陆时,网站是如何通过验证的,我们都提交给了网站哪些信息,浏览器都发起了哪些请求? 下图是某个网站的登陆界面,接下来就让我们通过命令行模拟浏览器实现登陆操作,看看一个简单的登陆操作,具...
    99+
    2023-01-31
    浏览器 python
  • 使用Post方法模拟登陆爬取网页的实现方法
    最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页。下面是极简版的代码:import java.io.BufferedReader;import java.io.InputStreamReader;import java.i...
    99+
    2023-05-31
    java post 模拟登陆
  • Python模拟用户自动登陆网易126邮
    Python模拟用户自动登陆网易126邮箱的源码详解,在这里主要来和大家讲一讲,关于利用Python程序来实现自动登录(登陆)网易的126邮箱email的源码与方法,其它邮箱可以借鉴此Python程序代码发邮件。 涉及到Python针对...
    99+
    2023-01-31
    网易 用户 Python
  • scrapy的一些容易忽视的点(模拟登陆
    scrapy爬虫注意事项 一、item数据只有最后一条 这种情况一般存在于对标签进行遍历时,将item对象放置在了for循环的外部。解决方式:将item放置在for循环里面。   二、item字段传递后错误,混乱 有时候会遇到这样...
    99+
    2023-01-31
    scrapy
  • Python项目实战:密码模拟登陆猎聘网
    前言今天为大家介绍一个模拟登陆猎聘网招聘网站的案列,加了一个输入密码不可的模块getpass,这样更有安全性,可能实际应用不大,但是存在必有价值,就当是一个案例的练习吧,看看是如何做到模拟登陆猎聘网的导入第三方库...
    99+
    2023-06-02
  • Python爬虫之模拟知乎登录的方法教程
    前言 对于经常写爬虫的大家都知道,有些页面在登录之前是被禁止抓取的,比如知乎的话题页面就要求用户登录才能访问,而 “登录” 离不开 HTTP 中的 Cookie 技术。 登录原理 Cookie 的原理非常简...
    99+
    2022-06-04
    爬虫 方法 教程
  • 关于云服务器的登陆方法描述正确的
    云服务器是一种虚拟服务器,用户通过互联网访问服务器,并使用服务器上的软件进行操作。因此,云服务器的登录方法通常包括以下几种: 使用浏览器登录:用户可以使用Chrome、Firefox等浏览器进行登录操作,具体步骤是打开浏览器并登录云服务...
    99+
    2023-10-26
    正确 服务器 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作