40

NodeJSによるログインが必要な Web サイトをスクレイピングするために使用しようとしていますPOST。次に、ログインすると、別の Web ページにアクセスできますGET

request現在の最初の問題はログインです。ログイン情報を使用しようとしまし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を使用することになりました

4

3 に答える 3

15

私にはrequest.jar();うまくいきませんでした。したがって、ヘッダー応答を使用して、次のような別の要求を作成しています。

request.post({
    url: 'https://exampleurl.com/login',
    form: {"login":"xxxx", "password":"xxxx"}
}, function(error, response, body){

    request.get({
        url:"https://exampleurl.com/logged",
        header: response.headers
    },function(error, response, body){
        // The full html of the authenticated page
        console.log(body);
    });
});

実際、この方法はうまく機能しています。=D

于 2014-08-21T22:45:37.847 に答える