木偶中的页面cookie不适用于保持登录 [英] page cookies in puppeteer not work for keep login
本文介绍了木偶中的页面cookie不适用于保持登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要在https://web.whatsapp.com上制作Web刮板 向我的客户发送消息 我想保存我的登录信息以备下次使用,这样就不需要重新扫描二维码了 我知道我必须保存cookie以备下次使用。 扫描QR并登录到我的帐户后,我在Google Chrome开发工具、应用程序选项卡和Cookie部分看到Cookie,但page.cookie为空并返回[] 我尝试使用示例代码将cookie存储在文件中。运行代码后,mycookie.json创建,[]在。
如何才能做到这一点?
const puppeteer = require('puppeteer');
const jsonfile = require('jsonfile');
(async () => {
const browser = await puppeteer.launch({
headless: false,
args: ['--start-maximized']
});
const page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36');
await page.setViewport({ width: 1280, height: 800 });
await page.goto('https://web.whatsapp.com/', {waitUntil: 'networkidle0'});
await page.setViewport({
width: 1440,
height: 900
});
await page.waitFor(10000);//wait for scan qr
console.log(await page.cookies());
// Save Session Cookies
var cookiesFilePath = 'mycookie.json';
const cookiesObject = await page.cookies();
// Write cookies to temp file to be used in other profile pages
jsonfile.writeFile(cookiesFilePath, cookiesObject, { spaces: 2 },
function(err) {
if (err) {
console.log('The file could not be written.', err)
}
console.log('Session has been successfully saved')
})
})();
推荐答案
如果使用userDataDir,则不会丢失浏览器数据。 即使您获得的Cookie数据对您没有帮助,因为Web WhatsApp也使用本地存储。
示例
const browser = await puppeteer.launch({
headless: false,
args: ['--start-maximized'],
userDataDir: '<PATH>' // './cache' for example
});
PATH变量中定义的目录必须存在!
参考资料
https://github.com/GoogleChrome/puppeteer/blob/v1.20.0/docs/api.md#puppeteerdefaultargsoptions
https://docs.browserless.io/blog/2019/05/03/improving-puppeteer-performance.html#launch-with-a-user-data-dir
https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md
这篇关于木偶中的页面cookie不适用于保持登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文