`

nodejs 之模拟登录

 
阅读更多

最近看了 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();

 

分享到:
评论
1 楼 itway 2016-06-20  
很棒的小demo

相关推荐

    nodejs模拟微博登录

    在本文中,我们将深入探讨如何使用Node.js来模拟微博登录的过程。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,由于其非阻塞I/O和事件驱动的特性,非常适合构建高性能的网络应用,包括模拟登录操作。 首先...

    node-keyupdown:[实验] 在 nodejs 上模拟 keyup 和 keydown

    在 nodejs 上模拟 keyup 和 keydown。 样本 var keydownup = require ( "./index" ) keydownup ( process . stdin ) process . stdin . on ( 'keydown' , function ( ) { console . log ( "keydown" ) } ) ...

    使用 nodejs 模拟 scratch-link 实现硬件连接源码.zip

    使用 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....

    NodeJs模拟登陆正方教务

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

    nodejs 实现模拟form表单上传文件

    在Node.js中实现模拟form表单上传文件,主要涉及到HTTP协议中的multipart/form-data数据格式。这种格式用于提交表单,尤其是文件上传时。文件上传时,浏览器会将每个文件作为form-data的一部分,每一个部分都通过一...

    一个nodejs足球模拟模块___下载.zip

    这个"足球模拟模块"是用Node.js开发的一个应用程序,可能是为了模拟足球比赛的过程、策略或者统计数据。在这个"footballSimulationEngine-master"压缩包中,很可能是包含了整个项目的所有源代码和相关资源。 在Node...

    harmonyos2-nodejs-weibo-login:Nodejs模拟登录新浪微博模块

    模拟登录新浪微博 node版本 node v7.5.0, 使用了 async/await 语法 运行方法 由于 async/await 是ES7中的,所以运行时要加上--harmony-async-await 参数 git clone git@github....

    NodeJS终端模拟器Awkward.zip

    Awkward 是一个基于 NodeJS 开发的终端模拟器。在 Awkward 终端中一切都是对象,例如:(ps -ef)().map(a => [a[0], a[7]]).forEach(a => console.log(a))安装方法:npm install -g awkward 标签:Awkward

    weibo-simulation-api:nodejs微博模拟登录发布微博

    新浪微博模拟登录、API主要是因为微博现在基本封禁了第三方api,所以做这个用来代替。aip的设计模拟的是官方的sdk,上手极快。特性完美代替微博的api支持发送带图片微博(原图上传)支持发布批量图片微博支持发送...

    aliyun-iot-demo-nodejs:Nodejs模拟硬件设备接入阿里云IoT物联网套件,基础版demo+高级版demo

    思路:温湿度计通过MQTT协议连接到IoT套件,规则引擎针对数据上报Topic配置转发到函数计算(FunctionComputer)中编写好的函数pushData2DingTalk,函数Nodejs脚本处理数据,post到钉钉群机器人的Webhook,配置了温湿度...

    skill-sample-nodejs-quiz-game, 演示如何构建测试游戏技巧的Alexa技能示例.zip

    本项目"skill-sample-nodejs-quiz-game"就是一个很好的实例,展示了如何利用Node.js构建一个测试用户游戏技巧的Alexa Skill。 首先,我们需要了解的是,这个开源项目的核心是使用Node.js,这是一种基于Chrome V8...

    Nodejs实现的股票模拟交易系统

    在这个场景下,"Nodejs实现的股票模拟交易系统"是一个利用Node.js开发的软件,旨在模仿真实的股票市场,让用户在不涉及真实资金的情况下进行交易实践。 在构建这样的系统时,我们需要考虑以下几个核心知识点: 1. ...

    nodejs 中模拟实现 emmiter 自定义事件

    在Node.js环境中,事件驱动是其核心特性之一。`EventEmitter`类是Node.js内置的事件模块`events`中的核心类,它允许对象之间通过触发和监听事件来通信,极大地提高了代码的可复用性和模块化。然而,在某些场景下,...

    基于nodejs+mysql实现的仿京东商城项目

    基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) ...登录 商品详情页 商品搜索 mysql数据库的安装 运行详情见包内文档

    localDB:基于nodejs,模拟数据库,将数据以json格式对本地文件进行读写

    简介localDB是一个数据库操作库,它基于nodejs的fs模块开发的。它提供了基本的增删查改的功能。其数据结构如下:data是json对象所存放的数组{ curindex: 1, data: []}每次插入新数据的json对象都会插入id=系统配置32...

    NodeJs form-data格式传输文件的方法

    本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...

    基于nodejs的微博爬虫

    这个爬虫的主要功能包括模拟登录微博、分页爬取明星照片,并将获取的图片保存到本地。 首先,我们需要了解Node.js的基础知识。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用...

    mockServer+nodejs+express.zip

    这个压缩包"mockServer+nodejs+express.zip"包含了一套基于MockServer、Node.js和Express搭建的模拟服务器环境。 MockServer允许你定义HTTP响应,包括状态码、头信息以及响应体。这样,当你的前端应用向后端发送...

    mock-api:使用json-server创建的NodeJS模拟API

    模拟API 一个使用json服务器实现的简单模拟API服务器。 db是json文件中的容器,当前仅包含一组雇员。 可用端点 模拟api公开以下端点和方法: GET POST { " id " : 99 , " first_name " : " Some " , " last_...

Global site tag (gtag.js) - Google Analytics