您需要编写程序逻辑来考虑这一点。例如:
从cookiejar
加载饼干
打一URL来检查,如果用户登录
如果没有登录
登录,保存cookies来cookiejar
继续处理
示例
变种FS =要求(“FS”);
VAR CookieJar =“cookiejar.json”;
变种pageResponses = {};
page.onResourceReceived =功能(响应){
pageResponses [response.url] = response.status;
fs.write(CookieJar,JSON.stringify(phantom.cookies),“W”);
};
如果(fs.isFile(CookieJar))
Array.prototype.forEach.call(JSON.parse(fs.read(CookieJar)),功能(X){
phantom.addCookie(X);
});page.open(LoginCheckURL,功能(状态){
//这个假设,当您没有登录,服务器以303回复
如果(pageResponses [LoginCheckURL] == 303)
{
//尝试登录
//假设resourceRequested事件被触发饼干将被写入罐子和脚本的下一个负荷,他们将被发现和使用
}
});
Phantom JS and cookies
--cookies-file=cookies will only store non-session cookies in the cookie jar. Login and authentication is more commonly based on session cookies.