NodeJS Puppeteer阻止第三方Cookie

时间:2020-02-20 20:49:01

标签: node.js cookies puppeteer

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

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

1 个答案:

答案 0 :(得分:0)

获取第一方Cookie:

您可以通过

获取第一方Cookie
await page.cookies()

阻止第三方Cookie:

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

  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

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

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