微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ubuntu上使用Puppeteer时page.setCookie没有影响

如何解决在Ubuntu上使用Puppeteer时page.setCookie没有影响

我与Puppeteer有一个奇怪的问题。当前的cookie设置代码如下:

(保存cookie)

const cookies = await page.cookies();
await checkMongoConnection();
account.cookies = JSON.stringify(cookies,null,null);
await account.save();
await closeMongoConnection();

(加载Cookie)

const options = {
    headless: true,defaultviewport: { width: 1366,height: 768 },ignoreHTTPSErrors: true,args: [
        '--disable-sync','--ignore-certificate-errors'
    ],ignoreDefaultArgs: ['--enable-automation']
};

const browser = await puppeteer.launch(options);
const page = await browser.newPage();
// Cookies
if (account.cookies) {
    // I have checked this with console.log it does contain cookies
    const cookies = JSON.parse(account.cookies);
    await page.setCookie(...cookies);
}

await page.goto('https://www.some-website.com');

在macOS(将headless设置为falsetrue的macOS上运行时,此方法没有任何问题,还请注意我正在使用Chromium。

但是,当我尝试在Linux ubuntu服务器上运行此设置时,仅设置cookie无效。有人遇到过这个问题吗?有什么想法我可能在这里做错了吗?

当我记录从数据库获取的cookie时,会得到类似的东西:

[
  {
    name: 'personalization_id',value: '"v1_FijCjdT7iRj3K+cbhPiPIg=="',domain: '.somedomain.com',path: '/',expires: 1664967308.337118,size: 47,httpOnly: false,secure: true,session: false,sameSite: 'None'
  },....

设置Cookie后,我尝试记录日志:

// Cookies
if (account.cookies) {
    const cookies = JSON.parse(account.cookies);
    await page.setCookie(...cookies);
}

console.log('check cookies');
const newCookies = await page.cookies();
console.log(newCookies);

这只会导致数组[]为空,因此似乎他们拒绝设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。