我有以下代码,并试图拦截一个特定的HTTP请求。我面临的问题是,通过puppeteer
启动铬时,会有一些标志导致某些请求无法获取所需数据。当我手动启动铬时,一切正常。
以tiktok为例
由木偶戏打开
请求
响应
以下是铬的详细信息,您可以看到带有.exe
的标志
当我手动打开铬时,会出现以下情况 与此响应相同的请求
我尝试了以下代码
//const puppeteer = require('puppeteer');
//const puppeteer = require('puppeteer-core');
var currentCookies = null;
//const browser = await puppeteer.launch({ignoreDefaultArgs : true });
//const browser = await puppeteer.launch({headless: false, executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' , ignoreDefaultArgs : true });
const [page] = await browser.pages();
我已经通过使用普通的chrome实现了它,但是由于它在centos和CLI上运行,因此无法在生产环境中使用。
我的问题是,如何在没有任何标志的情况下启动铬?因此,所有操作均正常完成。
答案 0 :(得分:0)
您可以使用ignoreDefaultArgs
选项。可以将其用作布尔值或数组。
布尔型示例
当ignoreDefaultArgs
设置为true时,操纵up不会将任何标志添加到命令行,而是在args
选项上设置的标志。
const browser = await puppeteer.launch({ignoreDefaultArgs: true, args: ['--mute-audio'] });
数组示例
设置数组时,puppeteer将从默认参数中删除这些标志。
const browser = await puppeteer.launch({ignoreDefaultArgs: ["-some-flag"] });
正如医生所说,这些都是危险的设置,因为我们知道Puppeteer会使用这些苍蝇工作。因此,我将尝试查看哪个特定标志引起了麻烦。