Set cookie for request in CasperJS

我只是一个虾纸丫 提交于 2019-12-07 00:37:41

问题


I want to load a page using CapserJS, but how can I send cookie which was exported from chrome's http request header at that page?

Such as:

"SUB=_2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-mFPo;"


回答1:


There are multiple ways, but the easiest would be to use the page.addCookie or phantom.addCookie functions which PhantomJS provides, but you would have to set the domain (and path). Keep in mind that page.addCookie has to be done on a loaded page whereas phantom.addCookie can be done before.

var cookie = "someCookieName=Value; otherName=Value";
var domain = "example.com";
cookie.split(";").forEach(function(pair){
    pair = pair.split("=");
    phantom.addCookie({
      'name': pair[0],
      'value': pair[1],
      'domain': domain
    });
});

casper.start("http://example.com", function(){
    // check that cookie was indeed set:
    this.capture("screen.png");
}).run();



回答2:


You could try to set the cookie headers directly like this:

casper.start().thenOpen('http://yoururl', {
    headers:{ "Cookie" : "CookieName=cookieValue" }
  }, function() {
    // ...
});


来源:https://stackoverflow.com/questions/26447790/set-cookie-for-request-in-casperjs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!