我正在尝试登录并抓取java重型网站。我最终在Node.js上使用了selenium。我能够登录并看到我登录了由selenium打开的浏览器。由于selenium没有访问响应流的方法,我试图通过Node.js请求获取它。我需要能够通过请求传递我的cookie以保持我的登录。我不确定我是否正确,因为我从请求得到的回复显示我没有登录。下面是我的代码的一部分:
var request = require('request').defaults({jar: true});
const driver = new Builder()
.forBrowser('chrome')
.build();
//perform login steps
driver.manage().getCookies().then(function (cookies) {
cookiesAll = cookies;
});
function onRequest(req, res) {
var queryData = url.parse(req.url, true).query;
if (queryData.url) {
request({
url: queryData.url,
jar: cookiesAll
}).on('error', function(e) {
res.end(e);
}).pipe(res);
}
else {
res.end("no url found");
}
}
我在控制台上检查了所有Cookie的内容,如下所示:
[ { domain: '.XXXX.com',
expiry: XXXXX,
httpOnly: false,
name: 'djcs_kli',
path: '/',
secure: false,
value: '1' },
{ domain: '.XXXX.com',
expiry: XXXXX,
httpOnly: false,
name: 'XXXXX',
path: '/',
secure: false,
value: 'XXXXXXX' },
{ domain: '.XXX.com',
httpOnly: false,
name: 's_cc',
path: '/',
secure: false,
value: 'true' }]