首页 > 解决方案 > NodeJS Puppeteer 阻止第三方 cookie

问题描述

抱歉,我找不到阻止第三方 Cookie 的代码。我在下面作为示例添加的代码片段吸引了所有 cookie。我想阻止第三方 cookie

await page._client.send('Network.getAllCookies'));

标签: node.jscookiespuppeteer

解决方案


检索第一方 cookie:

您可以通过以下方式获得第一方 cookie

await page.cookies()

阻止第 3 方 cookie:

据我所知,没有用于阻止 3rd 方 cookie 的 CDP 命令或终端开关。话虽如此,您可以创建一个配置文件并在该配置文件中打开 3rd 方 cookie 阻止。您初始化配置文件一次,然后每当您使用该配置文件启动 chromium 时,都会应用该设置。这将在不同的运行中保持浏览器设置。

  1. 创建一个文件夹并将其传递给userDataDir启动选项并设置合理的等待时间,因为您将手动与浏览器交互:
    const browser = await puppeteer.launch({
        headless: false,
        userDataDir: "full/path/to/created/folder"
    });
    const page = await browser.newPage();
    await page.waitFor(60000);
    await browser.close();  
    
  2. 干运行你的程序,当铬打开时去Settings > Site Settings > Cookies and site data打开Block third-party cookies

现在您可以在其他运行中使用此初始化配置文件并阻止第 3 方 cookie。

注意:请记住,其他数据(例如 cookie)也将存储在您创建的配置文件中,这与每次使用新配置文件运行的 puppeteer 的默认行为不同。为此,您可能需要考虑隐身模式。


推荐阅读