特定の URL にアクセスするには認証が必要です。ブラウザでログインする必要があるのは 1 回だけです。Cookie のセッション ID を使用できる他の関連 URL は、ログイン ページに移動する必要がないためです。--cookies-file=cookies.txt
同様に、 phantomjs のコマンドラインで使用する Cookie ファイルで生成された Cookie を使用して、同じ Cookie 詳細を必要とする他のページを開くことはできますか。
提案してください。
特定の URL にアクセスするには認証が必要です。ブラウザでログインする必要があるのは 1 回だけです。Cookie のセッション ID を使用できる他の関連 URL は、ログイン ページに移動する必要がないためです。--cookies-file=cookies.txt
同様に、 phantomjs のコマンドラインで使用する Cookie ファイルで生成された Cookie を使用して、同じ Cookie 詳細を必要とする他のページを開くことはできますか。
提案してください。
--cookies-file=cookies.txt
非セッション Cookie のみを Cookie jar に保存します。ログインと認証は、より一般的にはセッション Cookie に基づいています。
これらを保存するのは非常に簡単ですが、すぐに期限切れになる可能性があることを考慮する必要があります。
これを考慮するには、プログラム ロジックを記述する必要があります。例えば
ログインしていない場合
ログインし、cookie を cookiejar に保存します
var fs = require('fs');
var CookieJar = "cookiejar.json";
var pageResponses = {};
page.onResourceReceived = function(response) {
pageResponses[response.url] = response.status;
fs.write(CookieJar, JSON.stringify(phantom.cookies), "w");
};
if(fs.isFile(CookieJar))
Array.prototype.forEach.call(JSON.parse(fs.read(CookieJar)), function(x){
phantom.addCookie(x);
});
page.open(LoginCheckURL, function(status){
// this assumes that when you are not logged in, the server replies with a 303
if(pageResponses[LoginCheckURL] == 303)
{
//attempt login
//assuming a resourceRequested event is fired the cookies will be written to the jar and on your next load of the script they will be found and used
}
});