一般本地开发时直接用 puppeteer 自带下载的浏览器,此时使用 puppeteer.launch()
开启浏览器,配置参数通过 args 传递:
puppeteer.launch({
headless: false, // 取消无头
defaultViewport: { width: 1440, height: 780 },// 默认视口大小
args: [
`--disable-notifications=true`, // 关闭浏览器通知提示
`--blink-settings=imagesEnabled=false`, // 禁止加载图片
`--user-agent=${account.userAgent}`, // UA
`--proxy-server=${proxy}`, // 代理
"--window-position=1921,0", // 打开的窗口位于屏幕的位置
],
})
如果是到了线上,一般会采用 k8s 集群来跑浏览器容器,我使用过的是 browserless ,它跑起来之后提供一个入口可供您连接控制,下面是常用连接参数配置:
puppeteer.connect({
browserWSEndpoint: (() => {
const url = new URL("ws://localhost:9222");
url.searchParams.set("stealth", "true");
url.searchParams.set("timeout", `${ms(timeout)}`);
url.searchParams.set("--disable-notifications", "true");
url.searchParams.set(
"--blink-settings",
"imagesEnabled=false"
);
url.searchParams.set("--user-agent", account.userAgent);
url.searchParams.set("--proxy-server", proxy);
return url.toString();
})(),
defaultViewport: { width: 1440, height: 780 },
})