如何使用PhantomJS在外部域上设置cookie

时间:2016-09-07 10:08:45

标签: javascript php cookies phantomjs

你好我想问一下是否可以使用PhantomJS在外部域上设置cookie?我尝试下面的代码..

var webPage = require('webpage');
var page = webPage.create();
page.settings.javascriptEnabled = true;
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36';


phantom.addCookie({
  'name'     : 'ps_idssss',   /* required property */
  'value'    : '123123',  /* required property */
  'domain'   : 'casperjs.org',
  'path'     : '/',                /* required property */
  'expires'  : (new Date()).getTime() + (1000 * 60 * 60)   /* <-- expires in 1 hour */
});

page.open('http://casperjs.org', function (status) {

  console.log(page.cookies[0].name);
  phantom.exit();
});

我用PHP

执行它
<?php

$output = shell_exec('phantomjs cookie-js --cookies-file=~/phantomjs/cookies.txt');


echo $output           //outputs ps_idssss

?>

IT成功输出了Cookie,但当我访问http://casperjs.org时,它从未保存过任何Cookie。请帮忙

1 个答案:

答案 0 :(得分:2)

由于参数的顺序错误,它不起作用。脚本名称应该是最后一个参数。

$output = shell_exec('phantomjs --cookies-file=~/phantomjs/cookies.txt cookie-js');