страница cookie в кукловоде не работает для сохранения логина - PullRequest
0 голосов
/ 04 октября 2019

Я хочу сделать веб-скребок на https://web.whatsapp.com для отправки сообщения своим клиентам. Я хочу сохранить мой логин для следующего использования, чтобы не нужно было повторно сканировать qr-код. Я знаю, что мне нужно сохранить cookie иустановить для следующего использования после сканирования qr и войти в свою учетную запись. Я вижу cookie в google chrome dev tools, вкладке приложения и разделе 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')
    })
})();

1 Ответ

0 голосов
/ 04 октября 2019

Вы должны использовать userDataDir Если вы используете это, вы не потеряете данные своего браузера. Даже если вы получаете данные cookie, которые вам не помогут, поскольку веб-приложение WhatsApp также использует local-storage .

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

...