分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

node.js使用superagent实现模拟登陆功能(包含下载验证码功能)

发布时间:2023-09-06 01:54责任编辑:蔡小小关键词:js验证码

superagent版本:3.8.3

样例代码:

var process = require(‘process‘);var superagent = require(‘superagent‘);var http = require(‘http‘);var fs = require(‘fs‘);var readline = require(‘readline‘);var picUrl = "http://192.168.1.125:9080/acps-mgm/login/changeValidateCode";var postUrl = "http://192.168.1.125:9080/acps-mgm/login/login";var testUrl = "http://192.168.1.125:9080/acps-mgm/merchant/view/235162";var username = "username";var password = "e99a18c428cb38d5f260853678922e03"; // "abc123"加密后var initCookie = "JSESSIONID=00000twI_3HQFk__rHfRohzQJiU:-1";var options = { ???hostname: "192.168.1.125", ???port: 9080, ???path: "/acps-mgm/login/changeValidateCode", ???method: "GET", ???headers: { ???????‘Accept‘ : ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8‘, ???????‘Accept-Encoding‘: ‘gzip, deflate‘, ???????‘Accept-Language‘: ‘zh-CN,zh;q=0.9‘, ???????‘Cache-Control‘: ‘max-age=0‘, ???????‘Connection‘: ‘keep-alive‘, ???????‘Cookie‘: initCookie, ???????‘Host‘: ‘192.168.1.125:9080‘, ???????‘Upgrade-Insecure-Requests‘: ‘1‘, ???????‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36‘ ???}}console.log(‘111‘);var reqForPic = http.request(options, function (res) { ???console.log("ReqForPic: status = " + res.statesCode); ???console.log(‘ReqForPic: headers = ‘ + JSON.stringify(res.headers)); ???var picCookie = res.headers[‘set-cookie‘][0].split(‘;‘)[0]; ???console.log("pic cookie: " + picCookie); ???res.setEncoding(‘binary‘); ???var content = ""; ???res.on(‘data‘, data => content += data) ???????.on(‘end‘, function () { ???????????fs.writeFileSync(__dirname + ‘/valiCode.jpg‘, content, ‘binary‘); ???????????console.log(‘成功下载验证码‘); ???????????var rl = readline.createInterface({ ???????????????input: process.stdin, ???????????????output: process.stdout ???????????}); ???????????rl.question("请输入验证码?", answer => { ???????????????var valiCode = answer; ???????????????rl.close(); ???????????????console.log("输入的验证码是:" + valiCode); ???????????????// post部分 ???????????????superagent.post(postUrl) ???????????????????.type("form") ???????????????????.set("Accept", "application/json, text/javascript, */*; q=0.01") ???????????????????.set("Accept-Encoding", "gzip, deflate") ???????????????????.set("Accept-Language", "zh-CN,zh;q=0.9") ???????????????????.set("Connection", "keep-alive") ???????????????????.set("Content-Length", "72") ???????????????????.set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ???????????????????.set("Cookie", picCookie) ???????????????????.set("Host", "192.168.1.125:9080") ???????????????????.set("Origin", "http://192.168.1.125:9080") ???????????????????.set("Referer", "http://192.168.1.125:9080/acps-mgm/login.html") ???????????????????.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36") ???????????????????.set("X-Requested-With", "XMLHttpRequest") ???????????????????.send({ ???????????????????????password: password, ???????????????????????username: username, ???????????????????????vailCode: valiCode ???????????????????}) ???????????????????.end( function (err, res) { ???????????????????????????????????????????????if (err) { ???????????????????????????console.log("出错:" + err); ???????????????????????} else { ???????????????????????????console.log(res.text); ???????????????????????????superagent.get(testUrl) ???????????????????????????????.set("Accept", "*/*") ???????????????????????????????.set("Accept-Encoding", "gzip, deflate") ???????????????????????????????.set("Accept-Language", "zh-CN,zh;q=0.9") ???????????????????????????????.set("Connection", "keep-alive") ???????????????????????????????.set("Cookie", picCookie) ???????????????????????????????.set("Host", "192.168.1.125:9080") ???????????????????????????????.set("Referer", "http://192.168.1.125:9080/acps-mgm/") ???????????????????????????????.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36") ???????????????????????????????.end( (err2, res2)=> { ???????????????????????????????????if (err2) { ???????????????????????????????????????console.log("出错2:" + err2); ???????????????????????????????????} else { ???????????????????????????????????????console.log(res2.text); ???????????????????????????????????} ???????????????????????????????} ); ???????????????????????} ???????????????????} ); ???????????}); ???????});});reqForPic.on(‘error‘, err => console.log("请求验证码的时候发生错误:" + err.message));reqForPic.end();

node.js使用superagent实现模拟登陆功能(包含下载验证码功能)

原文地址:https://www.cnblogs.com/zifeiy/p/9036436.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved