Puppeteer 持久登录 Cookie

问题描述 投票:0回答:0

** 当我尝试使用 Puppeteer 登录网站时,我可以这样做,我的问题是当我尝试重置 cookie 以不重复登录过程时,下面是我的登录逻辑 **


(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    defaultViewport: null, // set defaultViewport to null
  });
  const page = await browser.newPage();
  const link = 'https://www.reuters.com/account/sign-in/?redirect=https%3A%2F%2Fwww.reuters.com%2F'

  await page.goto(link, {
    waitUntil: "networkidle2",
  });

  // const elementHandle = await page.$('a[href*="/signin/"].button__link__uTGln.button__secondary__18moI.button__round__1nYLA.text-button__container__3q3zX.site-header__button__RTOI5');
  // await elementHandle.click();
  await page.waitForSelector('input[name="email"]');
  await page.waitForSelector('input[name="password"]');

  await page.type('input[name="email"]', "[email protected]");
  await page.type('input[name="password"]', "myComplicatedPassword");



  await sleep(1000);
  await page.click('.sign-in-form__sign-in-btn__2jvFh')

  await sleep(10000);

  //save cookies
  const cookies = await page.cookies();
  await fs.writeFile('./cookies.json', JSON.stringify(cookies, null, 2));

  await browser.close();
})();

** 这是设置 cookie 的逻辑

**

(async () => {
const browser = await puppeteer.launch({
    headless: false,
    executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    defaultViewport: null, // set defaultViewport to null
    });
    const page = await browser.newPage();

  //load cookies
  const cookiesString = await (await fs.readFile("./cookies.json"));
  const cookies = JSON.parse(cookiesString);

  await page.setCookie(...cookies);
    console.log(await page.cookies('https://www.reuters.com/'))
  await page.goto("https://www.reuters.com/");

//   await browser.close();
})();

我哪里错了?

node.js web-crawler puppeteer
© www.soinside.com 2019 - 2024. All rights reserved.