节点JS请求未保留当前会话/ cookie

时间:2019-01-01 19:37:19

标签: node.js cookies web-scraping request request-promise

我一直在尝试使用Node JS通过请求承诺进行网络抓取,但是最近我发现,当尝试通过对每个请求使用相同的cookie罐创建请求会话时,请求会话不会持久。到目前为止,这是我的代码:

var rp = require('request-promise'); //requests module
var jssoup = require('jssoup').default; //crawler

global.useragent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)';

function kithCheckoutLink(bypass, link){
    var cookiejar = rp.jar()
    if (bypass == 1){
         global.options =  {
            uri: 'https://kith.com/cart/18914757476421:1',
            jar: cookiejar,
            followAllRedirects: true,
            headers:{
                'User-Agent':useragent
            },
        }
        console.log(options.uri);
        bypassrequest = rp.get(options, function(error, response){
            var bypasslink = bypassrequest.uri.href;
            console.log(bypasslink);
            options.uri = 'https://kith.com/cart/change?line=1&quantity=0';
            removerequest = rp.get(options, function(error, response){
                console.log(removerequest.uri.href);

            });
        });

    }

};

kithCheckoutLink(1, 'www.google.com'); 

因此,当我运行代码时,一切正常,直到第二个GET请求为止。我收到一个巨大的“错误请求”错误,提示“无法更新空购物车”。事实是,通过第一个GET请求,我成功地将产品添加到网站上的购物车中,并且控制台记录了结帐链接以进行证明。我什至使用chrome浏览器手动尝试了此操作,但清理购物车没有任何问题。这意味着问题一定是cookie没有转移到每个请求,就像cookie正在转移一样,因为我只是将产品添加到购物车,所以不会收到我的购物车已经为空的错误。我在这里做什么错了?

0 个答案:

没有答案