Node.js 木偶演员未在无头模式下运行:错误模式
我想让木偶演员进入无头模式:错误模式。它在我的本地计算机上工作,但当我将其推送到服务器并尝试启动它时,会出现以下错误:Node.js 木偶演员未在无头模式下运行:错误模式,node.js,google-chrome,puppeteer,headless,Node.js,Google Chrome,Puppeteer,Headless,我想让木偶演员进入无头模式:错误模式。它在我的本地计算机上工作,但当我将其推送到服务器并尝试启动它时,会出现以下错误: 4|scraperP | You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection: 4|scraperP | Error: Failed to launch chrome! 4|scraperP | [0620/073557.986542:ERRO
4|scraperP | You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
4|scraperP | Error: Failed to launch chrome!
4|scraperP | [0620/073557.986542:ERROR:nacl_helper_linux.cc(310)] NaCl helper process running without a sandbox!
4|scraperP | Most likely you need to configure your SUID sandbox correctly
4|scraperP | TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
4|scraperP | at onClose (/home/pjotr/scrapermmcreation/node_modules/puppeteer/lib/Launcher.js:285:14)
4|scraperP | at Interface.helper.addEventListener (/home/pjotr/scrapermmcreation/node_modules/puppeteer/lib/Launcher.js:274:50)
4|scraperP | at Interface.emit (events.js:165:20)
4|scraperP | at Interface.close (readline.js:381:8)
4|scraperP | at Socket.onend (readline.js:154:10)
4|scraperP | at Socket.emit (events.js:165:20)
4|scraperP | at endReadableNT (_stream_readable.js:1101:12)
4|scraperP | at process._tickCallback (internal/process/next_tick.js:152:19)
当我以headless:true模式启动时,我不会得到htis错误。你知道怎么解决这个问题吗?这就是我发布木偶演员的方式:
var browser = await puppeteer.launch({
args: [
'--ignore-certificate-errors',
'--no-sandbox',
'--disable-setuid-sandbox',
'--window-size=1920,1080',
"--disable-accelerated-2d-canvas",
"--disable-gpu"],
ignoreHTTPSErrors: true,
headless: false,
});
1。您必须安装一些lib软件包。
gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget \
xvfb x11vnc x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
2。然后用脚本启动xvfb
例如:
xvfb运行--server args=“-screen 0 1024x768x24”npm启动
如果您使用Docker,请遵循此Docker文件
下面是一个使用xvfb的木偶演员的例子
您可以尝试诱使无头chrome在启用GPU的情况下运行:
const browser=wait puppeter.launch({
无头:错,
参数:['--headless'],
})
对我来说,它很有效:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
console.log(await browser.userAgent());
await browser.close();
})();
以下几点对我有用
const puppeteer = require("puppeteer");
async function getData() {
const browser = await puppeteer.launch({ headless: false });
}
getData();
你能显示代码吗?我添加了如何启动iti我认为你没有正确安装chrome。正在阅读软件包列表。。。已完成构建依赖关系树以读取状态信息。。。完成E:找不到程序包libexpat1 E:找不到程序包libpango-1.0-0 E:找不到glob'libpango-1.0-0'的任何程序包E:找不到regex'libpango-1.0-0'的任何程序包E:找不到程序包libxcurs1 E:找不到程序包ca证书E:找不到程序包xvfbi尝试安装所有程序包bt仍然有同样的问题。我通过链接,在Ubuntu 16.04上成功地解决了这个问题。这个答案不值得投反对票。为什么这不是正确的答案?就像一个魔咒一样,thanksI一直在努力让木偶演员在nodeJs digitalocean droplet上奔跑,这是最后一个障碍。谢谢至于lib包,如果
ldd chrome | grep not
在你的node_modules/puppeter/../chrome linux中没有显示任何内容,sudo获得xvfb
,然后用Naimur说的xvfb run
运行命令就足够了。再次感谢!这是专门针对headless模式的(headless:true或省略它)
const puppeteer = require("puppeteer");
async function getData() {
const browser = await puppeteer.launch({ headless: false });
}
getData();