Задать вопрос
@xxxKNxxx
Молодец

Как конвертировать cookie в формат QList < QNetworkCookie >?

Необходимо конвертировать cookie в формат QList < QNetworkCookie > . Пытался подобрать структуру сохранения через регулярки, но без результата. Сейчас пытаюсь сохранить их через сам PhantomJS, передаю в скрипт через параметр командной строки в виде JSON:

var needCookies = JSON.parse(require('system').args[1]);
    for (key in needCookies) {
        console.log(phantom.addCookie(needCookies[key]));
    }
    console.log(JSON.stringify(phantom.cookies, null, 2));
    phantom.exit();


После закрытия сеанса Phantom не сохраняет эти cookie в файл преданный ему через параметр "--cookies-file"
Пример запроса:

C:\phantomjs\phantomjs.exe --cookies-file=C:\server\www\lib3\get_content\_parser_lib\cCookie\cookies\testCookies-phantomjs.cookie --ignore-ssl-errors=true --load-images=true --local-storage-path=C:\server\www\lib3\get_content\_parser_lib\cPhantomJS\storage --output-encoding=utf-8 --local-to-remote-url-access=true 'C:\server\www\lib3\get_content\_parser_lib\cPhantomJS\script\addCookie.js' '^[^{^"name^":^"PHPSESSID^",^"value^":^"asdf123465^",^"domain^":^".test1.ru^",^"path^":^"^\/^",^"expires^":^"Wed, 22-Jan-14 05:58:58 GMT^",^"httponly^":false,^"secure^":false^},^{^"name^":^"testName^",^"value^":^"testValue^",^"domain^":^".test1.ru^",^"path^":^"^\/^",^"expires^":^"Wed, 22-Jan-14 05:58:58 GMT^",^"httponly^":false,^"secure^":false^}^]'


Пример данных cookie:

[General]
cookies="@Variant(\0\0\0\x7f\0\0\0\x16QList<QNetworkCookie>\0\0\0\0\x1\0\0\0\x4\0\0\0\x61logged_in=no; secure; HttpOnly; expires=Sat, 21-Jan-2034 01:18:06 GMT; domain=.github.com; path=/\0\0\0w__utma=1.138296252.1390267083.1390267083.1390267083.1; expires=Thu, 21-Jan-2016 01:18:02 GMT; domain=github.com; path=/\0\0\0Z__utmb=1.1.10.1390267083; expires=Tue, 21-Jan-2014 01:48:02 GMT; domain=github.com; path=/\0\0\0\x87__utmz=1.1390267083.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); expires=Tue, 22-Jul-2014 13:18:02 GMT; domain=github.com; path=/)"


Пробовал через фиктивный файл для рендеринга и присваивания Cookies, но phantom не отправляет cookie если домен не соответствует. Есть ли тут умельцы которые много работали с PhantomJS и знают как решить эту задачу? Я уже выбился из сил, третий день занимаюсь.

P.S.

+ То что phantomJS использует Qt сериализованные данные для хранения cookie я знаю, если вы знаете как в этот формат конвертировать, буду признателен за совет.
+ Мануал весь перечитал(на гитхабе), про эту тему не нашел ничего. Если вы наблюдательней меня дайте линк почитаю.
  • Вопрос задан
  • 3574 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы