如何在Puppeteer中启用Cookies功能
Puppeteer启动的Chromium实例默认已开启Cookie支持,无需额外设置即可正常使用。若你遇到Cookie失效的情况,可按以下步骤排查和手动配置:
1. 排查禁用Cookie的启动参数
首先检查puppeteer.launch的args参数中是否包含--disable-cookies,该参数会全局禁用浏览器Cookie支持,删除该参数即可恢复默认行为。
正常无特殊配置的启动示例:
const puppeteer = require('puppeteer'); (async () => { // 无--disable-cookies参数时默认启用Cookie const browser = await puppeteer.launch({ args: [] }); const page = await browser.newPage(); // 后续页面操作 })();
2. 手动强制开启站点Cookie权限
如果排除启动参数问题后仍有Cookie异常,可通过浏览器上下文权限配置,明确给目标站点开放Cookie权限:
const browser = await puppeteer.launch(); const context = browser.defaultBrowserContext(); // 替换为实际访问的站点域名即可 await context.overridePermissions('https://example.com', ['cookies']); const page = await context.newPage();
3. 常见异常场景排查
- 跨域请求场景下,页面内发起的Fetch/XHR请求需要配置
credentials: 'include'才会自动携带Cookie - 若需要持久化存储Cookie,可配置用户数据目录避免浏览器关闭后Cookie被清空:
const browser = await puppeteer.launch({ userDataDir: './local-chrome-cache' // 自定义本地缓存目录路径 }); - 可通过
await page.cookies()方法打印当前页面生效的Cookie列表,验证Cookie是否正常生成、存储
内容的提问来源于stack exchange,提问作者Lauritz Tieste
相关产品推荐
相关产品推荐

