这是我做的一个例子:
/* global phantom:false */
var page = require('webpage').create();
var cookies = require('./cookie');
for (var i=0; i<cookies.length; i++) {
(function(item){
console.log('Add cookie:', item.name + '=' + item.value);
phantom.addCookie({
name: item.name,
value: item.value,
domain: item.domain,
path: item.path,
httponly: item.httpOnly,
secure: item.secure,
expires: item.expirationDate
});
})(cookies[i]);
}
page.open('http://www.html-kit.com/tools/cookietester/', function() {
page.render('example.png');
phantom.exit();
});
和cookie文件:
[{
"domain": ".www.html-kit.com",
"expirationDate": 1387428974.142711,
"hostOnly": false,
"httpOnly": false,
"name": "TestCookie_Name_201312160042",
"path": "/",
"secure": false,
"session": false,
"storeId": "0",
"value": "TestCookie_Value_230042"
}]
由于未知原因,它对我不起作用:
答案 0 :(得分:1)
对于phantomJS 1.9.2,cookie的工作原理如下:
var page = require('webpage').create();
phantom.addCookie({
'name' : 'TestCookie_Name_201312174009', /* required property */
'value' : 'TestCookie_Value_164009', /* required property */
'domain' : 'www.html-kit.com', /* required property */
'path' : '/',
'httponly' : true,
'secure' : false,
'expires' : (new Date()).getTime() + (1000 * 60 * 60) /* <-- expires in 1 hour */
});
page.open('http://www.html-kit.com/tools/cookietester/', function() {
//console.log(page.plainText);
page.render('example.png');
for (var i = 0; i < page.cookies.length; i++) {
console.log(page.cookies[i].name + "=" + page.cookies[i].value);
}
phantom.exit();
});
另存为cookie.js然后用
运行phantomjs cookie.js
请注意,cookie名称和值应该有特殊模式,否则html-kit看起来不接受它。
如果您想保存cookie供以后使用,可以添加--cookies-file选项