javascript – 如何在NodeJS中维护请求会话

我试图使用NodeJS来刮取需要POST登录的网站。
然后一旦登录,我可以通过GET访问单独的网页。

第一个问题现在正在登录。我尝试使用请求POST登录信息,但我得到的响应似乎没有登录。

exports.getstats = function (req, res) {
    request.post({url : requesturl, form: lform}, function(err, response, body) {
        res.writeHeader(200, {"Content-Type": "text/html"});
        res.write(body);
        res.end();
    });
};

在这里我只是转发我回到的页面,但是我收到的页面仍然显示登录表单,如果我尝试访问另一个页面,它表示我没有登录。

我想我需要维护客户端会话和cookie数据,但是我找不到任何资源来帮助我了解如何做到这一点。

作为后续工作,我最终使用zombiejs来获取我需要的功能

您需要制作一个cookie jar,并为所有相关请求使用相同的jar。

 var cookieJar = request.jar();
 request.post({url : requesturl, jar: cookieJar, form: lform}, ...

在理论上应该允许您使用GET作为登录用户来刮取页面,但只有在您获得实际的登录代码之后才能使用该页面。根据您对登录POST响应的描述,可能尚未正确运行,因此,在您首先修复登录代码中的问题之前,cookie jar将无法帮助。

翻译自:https://stackoverflow.com/questions/19936705/how-to-maintain-a-request-session-in-nodejs

转载注明原文:javascript – 如何在NodeJS中维护请求会话