最近看了 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();
相关推荐
nodejs模拟微博的登录,传入 { "email": "xxxxx", "passwd": "xxxx" } 这个结构即可
一个nodejs足球模拟模块___下载.zip
使用nodejs来模拟form表单进行文件上传,可以同时上传多个文件。
在 nodejs 上模拟 keyup 和 keydown。 样本 var keydownup = require ( "./index" ) keydownup ( process . stdin ) process . stdin . on ( 'keydown' , function ( ) { console . log ( "keydown" ) } ) ...
网上已经有很多关于模拟登陆正方教务的作品了,基于 PHP,Python,Java,.Net 加上NodeJs,这几门语言都可以实现模拟登陆,模拟登陆的技术点不是特别难,这里记录一下利用Node碰到的一些坑,以及一些解决思路。
使用 request 与 cheerio、promise完成微博爬虫 最近写了一个微博爬虫,参考了 1、 首先在nodejs窗口模拟登录 2、 分页爬取微博上明星照片 3、 将爬取的照片存储到本地
模拟登录新浪微博 node版本 node v7.5.0, 使用了 async/await 语法 运行方法 由于 async/await 是ES7中的,所以运行时要加上--harmony-async-await 参数 git clone git@github....
Nodejs实现的股票模拟交易系统
nodejs 中模拟实现 emmiter 自定义事件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> [removed] function Emitter() { this.events = {}; //...
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支持发送带图片微博(原图上传)支持发布批量图片微博支持发送...
skill-sample-nodejs-quiz-game, 演示如何构建测试游戏技巧的Alexa技能示例 构建一个Alexa测试游戏技巧
思路:温湿度计通过MQTT协议连接到IoT套件,规则引擎针对数据上报Topic配置转发到函数计算(FunctionComputer)中编写好的函数pushData2DingTalk,函数Nodejs脚本处理数据,post到钉钉群机器人的Webhook,配置了温湿度...
本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...
简介localDB是一个数据库操作库,它基于nodejs的fs模块开发的。它提供了基本的增删查改的功能。其数据结构如下:data是json对象所存放的数组{ curindex: 1, data: []}每次插入新数据的json对象都会插入id=系统配置32...
模拟存储 的内存实现,用于测试! var localStorage = MockDomStorage ( ) localStorage . setItem ( 'thing' , 'value' ) localStorage . getItem ( 'thing' ) // => 'value' localStorage . getItem ( 'unknown...
基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) ...登录 商品详情页 商品搜索 mysql数据库的安装 运行详情见包内文档
mockServer模拟服务器请求,方便移动端优先开发,需要配合nodejs启动服务,只需要本地配置好json格式的数据格式即可,使用起来很方便
模拟API 一个使用json服务器实现的简单模拟API服务器。 db是json文件中的容器,当前仅包含一组雇员。 可用端点 模拟api公开以下端点和方法: GET POST { " id " : 99 , " first_name " : " Some " , " last_...