node.js - NodeJS Puppeteer 阻止第三方 cookie
问题描述
抱歉,我找不到阻止第三方 Cookie 的代码。我在下面作为示例添加的代码片段吸引了所有 cookie。我想阻止第三方 cookie。
await page._client.send('Network.getAllCookies'));
解决方案
检索第一方 cookie:
您可以通过以下方式获得第一方 cookie
await page.cookies()
阻止第 3 方 cookie:
据我所知,没有用于阻止 3rd 方 cookie 的 CDP 命令或终端开关。话虽如此,您可以创建一个配置文件并在该配置文件中打开 3rd 方 cookie 阻止。您初始化配置文件一次,然后每当您使用该配置文件启动 chromium 时,都会应用该设置。这将在不同的运行中保持浏览器设置。
- 创建一个文件夹并将其传递给
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();
- 干运行你的程序,当铬打开时去
Settings > Site Settings > Cookies and site data
打开Block third-party cookies
现在您可以在其他运行中使用此初始化配置文件并阻止第 3 方 cookie。
注意:请记住,其他数据(例如 cookie)也将存储在您创建的配置文件中,这与每次使用新配置文件运行的 puppeteer 的默认行为不同。为此,您可能需要考虑隐身模式。
推荐阅读
- alexa - Alexa技能响应分页
- qemu - qemu的virtio-blk的驱动参数可以设置成什么
- php - 每次行值更改时插入额外的 HTML
- php - mysql触发器限制为id列插入的行数
- xcode - 在编译时排除文件表单项目 swift3.2 - xcode
- image - 为多个屏幕反应原生图像
- java - 使用 Spring xml 配置从 rest 端点获取 maven 构建信息
- sql - Oracle 存储过程变量不起作用/表名无效
- c++ - 在 C++ 中运行 TensorFlow 时的显着 RAM 成本
- bash - 如何使用 awk 打印变量值?(代码改为打印变量名)