我想使用CapserJS加载网页,但是如何发送从Chrome的http请求标头中导出的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; cookie.split(;)。forEach(function(pair){ pair = pair.split(=); phantom.addCookie({'name ':pair [0],'value':pair [1],'domain':domain }); } casper.start(example,function(){ //检查cookie是否确实设置: this.capture(screen。 png); })。run();
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;"
解决方案
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"; cookie.split(";").forEach(function(pair){ pair = pair.split("="); phantom.addCookie({ 'name': pair[0], 'value': pair[1], 'domain': domain }); }); casper.start("example", function(){ // check that cookie was indeed set: this.capture("screen.png"); }).run();
更多推荐
在CasperJS中设置请求的Cookie
发布评论