跳到主要内容
CNode

在试用node.js 模拟登陆人人,结果碰到了一些问题,求大大们解答

社区
DDualWield发布于 12 年前最后回复 12 年前
637560

个人觉得好像是cookie没有保存,怎么办?

var request = require('request');
var fs = require('fs');


var request = request.defaults({jar: true});



request.post('http://www.renren.com/ajaxLogin/login',{form:{email:'***',password:***'}},function (error,response,body){
    console.log(body);

    request.get({url:'http://www.renren.com/Home.do'},function (error,response,body){
        fs.writeFileSync('body.txt', body);

    })
});

在第二个request.get()方法并没有取得想要的主页内容,Home.do判断你没有登陆。。

查看回复

回复 (6)

D
DualWield#612 年前

已经解决

D
DualWield#512 年前
引用 tulayanghttp请求是即时关闭的连接, 不是长连接. 也就是你的账号密码在get的时候还要发送

后来通信就是利用cookie通信了吧,不然难道在Home.do?email=***&password=***这样吗?这样明文传输不对吧

T
tulayang#412 年前

或者你有取得目标网站发送的cookie来跟踪账户

T
tulayang#312 年前

http请求是即时关闭的连接, 不是长连接.

也就是你的账号密码在get的时候还要发送

D
DualWield#212 年前

第一点,当你修改post里面的账号不对的时候,返回的是“用户名和密码不匹配”所以post应该是成功了的。放进去还是没有效果啊。本人刚接触node不久

A
alsotang#112 年前

根据官方文档来说,request.defaults({jar: true}); 这一句已经开启了全局 cookiejar 了。

所以我怀疑两点:

  1. 第一次 post 登陆没有成功

  2. 试着把第二次放在 setImmediate 里面试试,说不定有奇效。

参与回复

登录后即可参与回复。登录