我正在使用 puppeteer.connect() 连接到无头 chrome docker 图像。但是,在容器/操作系统中使用 puppeteer.launch() 是可行的,因为 chrome 和您的节点应用程序位于同一网络上,并且您可以生成多个窗口,每个窗口都有自己的选项卡。你如何使用 puppeteer.connect() 实现这一点?
将 Puppeteer 连接代码连接到独立的无头 chrome:
const response = await fetch(`http://192.168.100.100:9222/json/version`, {
headers: {
'Content-Type': 'application/json',
}
})
const { webSocketDebuggerUrl } = await await response.json()
const browser = await puppeteer.connect({
browserWSEndpoint: webSocketDebuggerUrl
})
Docker 镜像启动:
docker run -d -p 9223:9222 --name chromedp chromedp/headless-shell --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --disable-gpu --headless
我知道生成多个窗口可能会占用大量资源,但我的用例需要它。谢谢。