это вопрос о том, как сохранять файлы cookie с одной страницы casperjs на другую ..
так что в основном у меня есть файл nodejs, который порождает casperjs в качестве рабочего для выполнения определенных задач ... один - войти в систему, после входа в систему я сохраняю cookie в файле.
когда я создаю следующего каспер-воркера ... я хочу, чтобы он использовал файл cookie, вместо того, чтобы снова входить в систему ... оба этих метода не работают:
первый: когда я создаю рабочий capserjs, я добавляю --cookies-file =. / cookiefilename, т.е. var child = spawn('casperjs',['scrape.js','--cookies-file=./'+cookieFileName]);
второй: в рабочем файле casperjs .. Я заставляю его читать и устанавливать cookie из файла, т.е.
var casper = require('casper').create();
var cookieFileName = 'monsterCookie.txt';
// grab cookies from file
var fs = require('fs');
var utils = require('utils');
var cookies = fs.read(cookieFileName);
casper.page.setCookies(cookies);
casper.start('domain/page.html', function() {
//FAIL! cookies aren't used here
this.debugHTML();
});
casper.run();
примечания:
- ранее упоминалось, что
start
удаляет файлы cookie со страницы? если да, то как мне это предотвратить? - Я знаю, что сеансы сохраняются в одном и том же объекте страницы phantomjs (см. Здесь https://gist.github.com/abbood/5347252), и то же самое происходит в том же объекте страницы casperjs (см. здесь https://gist.github.com/abbood/5347287)
- имейте в виду, что я храню файлы cookie в том виде, в каком они есть в файле (т.е. без какого-либо анализа json / cookie вообще) .. поэтому мой файл cookie выглядит именно так
[Общие] куки = "@ Вариант (\ 0 \ 0 \ 0 \ x7f \ 0 \ 0 \ 0 \ x16QList \ 0 \ 0 \ 0 \ 0 \ x1 \ 0 \ 0 \ 0 \ n \ 0 \ 0 \ 0YCNTR = LB; истекает = Вт, 9 апреля 2013 г. 17:12:05 GMT; домен = .recruiter.domain.com; путь = / \ 0 \ 0 \ 0qUID = 13eb22f-2.21.171.120-1365523938; истекает = Пн, 30 -Mar-2015 16:12:18 GMT; domain = .domain.com; path = / \ 0 \ 0 \ 0] UIDR = 1365523938; expires = Mon, 30-Mar-2015 16:12:18 GMT; domain = .domain.com; путь = / \ 0 \ 0 \ 0 [R_LANG = en; expires = Thu, 09-May-2013 16:16:06 GMT; domain = .recruiter.domain.com; path = / \ 0 \ 0 \ 0 \ x94 \ x43 = 4gpUmUGr2jgDrs4xOJVrGaNbD8DtYSd1E6quyLhe3E4F3EAGhbRJucnDgRVDeHh0; expires = Thu, 09-May-2013 16:16:06 GMT; =f .recruc07_domain.com; : lv = 1365495369854: ss = 1365495136954; истекает = пт, 07-апр-2023, 08:16:09 по Гринвичу; домен = .domain.com; путь = / \ 0 \ 0 \ 0 \ xc4 \ x41 \ x43OOKIE = C8ctADE3OC4xMzUuMTQ3LjM5xAjAjAjAjAjAjMzAjAjMzAjAjAjMzAjAjMZUuMTQ3LjM5LTI ZFHhPWRRAQAAAAJWAADKPmRR4T1kUQAAAAA-; expires = Thu, 09-Apr-2015 16:16:10 GMT; domain = statse.domain.com; path = / \ 0 \ 0 \ 0Yv1st = CE061E87215F2D73; expires = Wed, 19-Feb-2020 14:28:00 GMT; домен = .domain.com; путь = / \ 0 \ 0 \ 0 \ x84 \ x43OOKIE_ID = 178.135.147.39-2368749744.30291261; истекает = пт, 07-апр-2023 16:16:11 GMT; домен = cookie.domain.com; путь = / DCS000065_7K5I \ 0 \ 0 \ 0 \ xbe \ x41 \ x43OOKIE = C8ctADE3OC4xMzUuMTQ3LjM5LTIzNjg3NDk3NDQuMzAyOTEyNjEAAAAAAAABAAAAQAAAAM0 + ZFAQANAmAm- истекает = пт, 07-апр-2023 16:16:13 GMT; домен = cookie.domain.com; путь = /) "