我用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)
});
}
创建了文件,写入了cookie,但是下次尝试运行脚本时,仍然出现授权表单
不幸的是,
nightmare我决定在puppeteer示例 - 将 cookie 保存到文件
从文件中读取 cookie
文章