我想要使用CapserJS加載頁面,但是如何發送從該頁面的chrome的http請求標頭導出的cookie?在CasperJS中爲請求設置cookie
如:
「SUB = _2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo; SUBP = 0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-mFPo;」
我想要使用CapserJS加載頁面,但是如何發送從該頁面的chrome的http請求標頭導出的cookie?在CasperJS中爲請求設置cookie
如:
「SUB = _2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo; SUBP = 0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-mFPo;」
有多種方式,但最簡單的是使用的page.addCookie
或phantom.addCookie
功能,這PhantomJS提供,但你必須要設置域名(和路徑)。請記住,page.addCookie
必須在加載頁面上完成,而phantom.addCookie
可以在之前完成。
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();
你可以嘗試直接設置cookie頭是這樣的:
casper.start().thenOpen('http://yoururl', {
headers:{ "Cookie" : "CookieName=cookieValue" }
}, function() {
// ...
});
不工作在我身邊 – Awakening 2016-03-18 03:22:45
不是爲我工作也:( – user2518430 2016-07-11 11:56:58
@ user2518430我不知道爲什麼有些人有這個問題,但我可以說'域'屬性是非常重要的。[這裏](https://gist.github.com/artjomb/eead7b3da73d138be12de5681aa95b80)是一個示例腳本,它適用於我。 'addCookie'調用和一個不查看是否有區別。 – 2016-07-11 18:26:50