You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Puppeteer page.cookies()无法获取Chrome开发者工具显示的全部Cookie

解决Puppeteer获取Google完整Cookie的问题

我之前也踩过这个坑!你现在只拿到2个Cookie,主要是自动化浏览器和真实Chrome的行为差异,加上Google的Cookie同意机制限制,下面给你一步步解决:

问题根源

  1. 旧版Headless模式的差异:你用的headless: true是Chrome的旧版无头模式,它和常规浏览器的Cookie加载策略有不少区别。
  2. 被识别为自动化工具:Puppeteer默认的User-Agent会被Google检测到,导致部分功能(包括Cookie设置)被限制。
  3. 未处理Cookie同意弹窗:Google现在强制要求用户同意隐私政策,没点击同意的话,大部分功能性Cookie不会被设置。
  4. 页面等待不充分:networkidle2可能不足以等待所有动态加载的Cookie完成配置。

修复后的代码

下面是整合了所有修复点的代码,直接就能用:

const puppeteer = require('puppeteer');

(async () => {
  // 使用新版Headless模式,行为和真实Chrome几乎一致
  const browser = await puppeteer.launch({
    headless: 'new',
    args: [
      '--disable-dev-shm-usage',
      '--no-sandbox', // 可选,解决部分环境的权限问题
      '--disable-blink-features=AutomationControlled' // 隐藏自动化标识,避免被反爬检测
    ]
  });
  const page = await browser.newPage();

  // 设置真实的Chrome User-Agent(可以替换成你自己浏览器的UA)
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');

  // 访问Google首页,等待页面完全加载
  await page.goto('https://google.com', { waitUntil: 'load' });

  // 处理Google的Cookie同意弹窗(英文界面选择器,中文界面可换成`button[aria-label="同意"]`)
  try {
    await page.waitForSelector('button#L2AGLb', { timeout: 5000 });
    await page.click('button#L2AGLb');
    // 点击后等待1秒,确保Cookie完成设置
    await page.waitForTimeout(1000);
  } catch (err) {
    console.log('未检测到Cookie同意弹窗,跳过此步骤');
  }

  // 获取所有Cookie
  const cookies = await page.cookies();
  console.log(`共获取到${cookies.length}个Cookie:`);
  console.log(cookies);

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

关键修改说明

  • headless: 'new':新版无头模式是Chrome官方推荐的,彻底解决了旧版无头模式和常规浏览器的行为差异问题。
  • 隐藏自动化标识:--disable-blink-features=AutomationControlled能让网站无法识别你在用自动化工具,避免Cookie设置被限制。
  • 真实User-Agent:模拟真实用户的浏览器标识,进一步降低被拦截的概率。
  • 处理同意弹窗:这是核心!只有点击同意按钮,Google才会下发完整的功能Cookie(比如AEC、SID这类)。
  • 优化等待逻辑:waitUntil: 'load'确保页面资源完全加载,加上弹窗点击后的等待时间,给Cookie设置留足缓冲。

如果还是有部分Cookie没获取到,可能是某些Cookie需要特定交互(比如执行一次搜索操作),你可以在同意弹窗后模拟搜索,再获取Cookie试试。

内容的提问来源于stack exchange,提问作者Pierrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:07:25