我使用以下代码获取特定网站的cookieID:
var request = require('request');
var Cookie = require('request-cookies').Cookie;
request.get('http://dmp.theadex.com/d/753/i/2.gif', function(err, response, body) {
var rawcookies = response.request.headers['set-cookie'];
//console.log(response.headers);
for (var i in rawcookies) {
var cookie = new Cookie(rawcookies[i]);
//console.log(cookie.key, cookie.value);
}
}).on('redirect', function () {
let a = this.response.headers['set-cookie'];
//console.log(_.isArray(a));
console.log('a = ', a);
let cookieText = a[0];
//console.log('cookieText', cookieText);
let split = cookieText.split("'");
console.log('split = ', split[0].split(";")[0]);
});
输出如下: a = ['axd = 1001413541554540210;到期=周四,2008年5月24日,格林威治标准时间13:54:54最大年龄= 31536000;路径= /; domain = .theadex.com'] split = axd = 1001413541554540210
所以代码工作正常,但是从数组中提取cookieID(a)并不是那么高效。有没有人有更好的解决方案来解决这个问题(可能是一个模块或一个方便的功能)? 提前谢谢。
答案 0 :(得分:1)
您可以使用set-cookie-parser
npm模块。
使用示例中的网址并拦截重定向:
const request = require('request');
const setCookieParser = require('set-cookie-parser');
request.get({
url: 'http://dmp.theadex.com/d/753/i/2.gif',
followRedirect: false
}, (err, res, body) => {
if ((res.statusCode >= 300) && (res.statusCode < 400)) {
const cookies = setCookieParser.parse(res);
console.log(cookies);
}
})
返回:
[ { name: 'axd',
value: '1001413550129520030',
expires: 2018-05-24T23:29:52.000Z,
maxAge: 31536000,
path: '/',
domain: '.theadex.com' } ]