Использую nightmare для парсинга сайта, но вся информация отдается только после авторизации
Я захожу на сайт и ищу форму авторизации, если нахожу, то авторизируюсь, если нет, то делаю нужные мне действия
let cookie_ = fs.readFileSync("cookies.json");//Ищу фаил с сохраненными куками
cookie = JSON.parse(cookie_);//Превращаю в json
nightmare
.goto('https://site.ru/login')//Захожу на сайт
.cookies.set(cookie)//Подставляю куки из файла
.evaluate(function () {
return document.querySelector('input[id="email"]');//Ищу поле для ввода почты
})
.then(function (page) {
if(page) {//Проверяю есть ли поле для ввода почты
f().then(function (cookies) {//Получаем результат из функции
require('fs').writeFileSync(//И записываем в фаил
'cookies.json',
JSON.stringify(cookies)
);
})
} else {
console.log('Вы авторизированы');
}
})
async function f() {//Вызываю функцию в случаи если мы не авторизированы
return new Promise((resolve, reject) => {
nightmare
.goto('https://site.ru/login')
.type('input[id="email"]', 'login')//Вводим почту
.type('input[id="password"]', 'passord')//Вводим пароль
.click('.btn.btn-danger')//Нажимаем на кнопку авторизации
.wait(2000)//Ждем 2 секунды
.cookies.get()//Получаем куки
.then(resolve)
});
}
Фаил создается, куки записываются, но при следующих попытках запуска скрипта, все равно появляется форма авторизации