Ответ 1
Хорошо, это похоже на то, что связано с сеансовыми файлами cookie, а не с обычными кукисами.
Это огромный поток разработчиков, отвечающих за функцию cookie фантомов и некоторых парней с той же проблемой, что и ваша.
https://groups.google.com/forum/#!msg/phantomjs/2UbPkIibnDg/JLV9jBKxhIQJ
Если вы не хотите задерживать весь файл, в основном: Phantomjs ведет себя как обычный браузер и удаляет все куки сессии, когда браузер закрывается, в вашем случае, когда заканчивается выполнение script.
Таким образом, даже если вы установите параметр - cookies-file =/path/to/cookies.txt, вы будете хранить только обычные куки файлы на нем, для выполнения субсекументов.
Для вас есть два возможных подхода. Один из них состоит в том, чтобы делать все запросы в пределах одного и того же script, а другой - хранить и восстанавливать файлы cookie вручную.
В потоке есть несколько функций, которые вы можете использовать для этого.
function saveCookies(sessionCookieFile, page) {
var fs = require("fs");
fs.write(sessionCookieFile, JSON.stringify(page.cookies));
}
function restoreCookies(sessionCookieFile, page) {
var fs = require("fs");
var cookies = fs.read(sessionCookieFile);
page.cookies = JSON.parse(cookies);
}
var page = require('webpage').create();
И, если все не удается...
Вы можете скачать исходный код и перекомпилировать phantomjs
Вам нужно будет отредактировать src/cookiejar.cpp и удалить или прокомментировать purgeSessionCookies();
Надеюсь, это поможет.