最近看了 nodejs开发指南这本书,并参照着 nodejs.org官方网站中的 api,写了一个 模拟登录程序,其中有 北邮人论坛的,有 163邮箱的。其中前者 只需post就可以了,居然是明文传输,也不用https。后者选择了https,通过抓发分析,写了如下程序,另外,还学习了 通过Nodejs进行web开发,发现 nodejs真的很强大,是做服务器端开发的一款利器。
登录北邮人的程序:
//**** 是北邮人的用户名 -----是密码 //登录 北邮人论坛 var http=require("http"); var querystring=require("querystring"); var contents=querystring.stringify({ CookieDate:0, id:"****", mode:0, passwd:"-----" }); var options={ host:"bbs.byr.cn", path:"/user/ajax_login.json", method:"post", headers:{ "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8", "Content-Length":contents.length, "Accept":"application/json, text/javascript, */*; q=0.01", "Accept-Language":"zh-cn", "Cache-Control":"no-cache", "Connection":"Keep-Alive", · "Host":"bbs.byr.cn", "Referer":"http://bbs.byr.cn/index", "User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)", "X-Requested-With":"XMLHttpRequest" } }; var req=http.request(options,function(res){ res.setEncoding("utf8"); res.on("data",function(data){ console.log(data); }); }); req.write(contents); req.end();
登录163邮箱的程序:
登录成功之后,通过抓到的cookie和 跳转的url,就可以了,下面打印出了cookie头部信息
//用户名 : ******* //密码 :------ var https=require("https"); var querystring=require("querystring"); var url="https://ssl.mail.163.com/entry/coremail/fcg/ntesdoor2?"+ "df=webmail163&from=web&funcid=loginone&iframe=1&language=-1&net=c&passtype=1&product=mail163&race=-2_60_-2_hz&style=-1&uid=*******@163.com"; var contents=querystring.stringify({ savelogin:1, password:"------", url2:"http://mail.163.com/errorpage/err_163.htm", username:"*******" }); var options={ host:"ssl.mail.163.com", path:"/entry/coremail/fcg/ntesdoor2?df=webmail163&from=web&funcid=loginone&iframe=1&language=-1&net=c&passtype=1&product=mail163&race=-2_60_-2_hz&style=-1&uid=******@163.com", method:"post", headers:{ "Content-Type":"application/x-www-form-urlencoded", "Content-Length":contents.length, "Accept":"text/html, application/xhtml+xml, */*", "Accept-Language":"zh-CN", "Cache-Control":"no-cache", "Connection":"Keep-Alive", "Host":"ssl.mail.163.com", "Referer":"http://mail.163.com/", "User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)" } }; var req=https.request(options,function(res){ res.setEncoding("utf8"); var headers=res.headers; //console.log(headers); var cookies=headers["set-cookie"]; cookies.forEach(function(cookie){ console.log(cookie); }); res.on("data",function(data){ console.log(data); }); }); req.write(contents); req.end();
相关推荐
在本文中,我们将深入探讨如何使用Node.js来模拟微博登录的过程。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,由于其非阻塞I/O和事件驱动的特性,非常适合构建高性能的网络应用,包括模拟登录操作。 首先...
在 nodejs 上模拟 keyup 和 keydown。 样本 var keydownup = require ( "./index" ) keydownup ( process . stdin ) process . stdin . on ( 'keydown' , function ( ) { console . log ( "keydown" ) } ) ...
使用 nodejs 模拟 scratch-link 实现硬件连接通讯 使用方法 npm i npm start 将 scratch-gui/node_modules/scratch-vm/src/util/scratch-link-websocket.js 中 this._ws = new WebSocket('wss://device-manager....
网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,Python,Java,.Net 加上NodeJs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用Node碰到的一些坑,以及一些解决思路。
在Node.js中实现模拟form表单上传文件,主要涉及到HTTP协议中的multipart/form-data数据格式。这种格式用于提交表单,尤其是文件上传时。文件上传时,浏览器会将每个文件作为form-data的一部分,每一个部分都通过一...
这个"足球模拟模块"是用Node.js开发的一个应用程序,可能是为了模拟足球比赛的过程、策略或者统计数据。在这个"footballSimulationEngine-master"压缩包中,很可能是包含了整个项目的所有源代码和相关资源。 在Node...
模拟登录新浪微博 node版本 node v7.5.0, 使用了 async/await 语法 运行方法 由于 async/await 是ES7中的,所以运行时要加上--harmony-async-await 参数 git clone git@github....
Awkward 是一个基于 NodeJS 开发的终端模拟器。在 Awkward 终端中一切都是对象,例如:(ps -ef)().map(a => [a[0], a[7]]).forEach(a => console.log(a))安装方法:npm install -g awkward 标签:Awkward
新浪微博模拟登录、API主要是因为微博现在基本封禁了第三方api,所以做这个用来代替。aip的设计模拟的是官方的sdk,上手极快。特性完美代替微博的api支持发送带图片微博(原图上传)支持发布批量图片微博支持发送...
思路:温湿度计通过MQTT协议连接到IoT套件,规则引擎针对数据上报Topic配置转发到函数计算(FunctionComputer)中编写好的函数pushData2DingTalk,函数Nodejs脚本处理数据,post到钉钉群机器人的Webhook,配置了温湿度...
本项目"skill-sample-nodejs-quiz-game"就是一个很好的实例,展示了如何利用Node.js构建一个测试用户游戏技巧的Alexa Skill。 首先,我们需要了解的是,这个开源项目的核心是使用Node.js,这是一种基于Chrome V8...
在这个场景下,"Nodejs实现的股票模拟交易系统"是一个利用Node.js开发的软件,旨在模仿真实的股票市场,让用户在不涉及真实资金的情况下进行交易实践。 在构建这样的系统时,我们需要考虑以下几个核心知识点: 1. ...
在Node.js环境中,事件驱动是其核心特性之一。`EventEmitter`类是Node.js内置的事件模块`events`中的核心类,它允许对象之间通过触发和监听事件来通信,极大地提高了代码的可复用性和模块化。然而,在某些场景下,...
基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) ...登录 商品详情页 商品搜索 mysql数据库的安装 运行详情见包内文档
简介localDB是一个数据库操作库,它基于nodejs的fs模块开发的。它提供了基本的增删查改的功能。其数据结构如下:data是json对象所存放的数组{ curindex: 1, data: []}每次插入新数据的json对象都会插入id=系统配置32...
本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...
这个爬虫的主要功能包括模拟登录微博、分页爬取明星照片,并将获取的图片保存到本地。 首先,我们需要了解Node.js的基础知识。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用...
这个压缩包"mockServer+nodejs+express.zip"包含了一套基于MockServer、Node.js和Express搭建的模拟服务器环境。 MockServer允许你定义HTTP响应,包括状态码、头信息以及响应体。这样,当你的前端应用向后端发送...
模拟API 一个使用json服务器实现的简单模拟API服务器。 db是json文件中的容器,当前仅包含一组雇员。 可用端点 模拟api公开以下端点和方法: GET POST { " id " : 99 , " first_name " : " Some " , " last_...