Rya*_*yan 34 javascript session request node.js
我正试图用来NodeJS
刮一个需要登录的网站POST
.然后,一旦我登录,我就可以访问一个单独的网页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();
});
};
Run Code Online (Sandbox Code Playgroud)
在这里我只是转发我回来的页面,但我回来的页面仍然显示登录表单,如果我尝试访问另一个页面,它说我没有登录.
我想我需要维护客户端会话和cookie数据,但我找不到任何资源来帮助我理解如何做到这一点.
作为后续,我最终使用zombiejs来获得我需要的功能
Pet*_*ons 43
您需要制作一个cookie jar并对所有相关请求使用相同的jar.
var cookieJar = request.jar();
request.post({url : requesturl, jar: cookieJar, form: lform}, ...
Run Code Online (Sandbox Code Playgroud)
从理论上讲,这应该允许您使用GET作为登录用户来抓取页面,但只有在您获得实际登录代码时才会这样做.根据您对登录POST的响应的描述,实际上可能无法正常工作,因此在您首先修复登录代码中的问题之前,cookie jar将无济于事.
Hen*_*ava 12
这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);
});
});
Run Code Online (Sandbox Code Playgroud)
Actualy这种方式工作正常.= d
归档时间: |
|
查看次数: |
34492 次 |
最近记录: |