ubuntu - 如何在服务器中运行 headful puppeteer?

标签 ubuntu puppeteer digital-ocean

我想用 headless = false 运行 puppeteer在我的带有 Ubuntu 的 Digital Ocean 服务器中。
当我进入 digitalocean.com 上的 Digital Ocean 控制台时,它运行正常(我将 ubuntu-desktop 作为 GUI,实际上会弹出 chromium 并开始在 GUI 中运行)。
但是,当我 ssh 进入控制台并尝试运行相同的程序时,程序会一直运行,直到它遇到 puppeteer 脚本,并且我从 puppeteer 收到以下错误消息:Error: Failed to launch the browser process!Unable to open X display.NaCl helper process running without a sandbox!Most likely you need to configure your SUID sandbox correctly这是我的 puppeteer 配置中的内容:

import puppeteer from "puppeteer";

export const getBrowser = async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      "--no-sandbox",
      "--disable-setuid-sandbox",
      "--window-size=1600,1200",
    ],
    defaultViewport: null,
  });
  return browser;
};
我玩过删除 --no-sandbox--disable-setuid-sandbox但这并没有解决它。
如果你问自己“他们为什么要这样做?” - 这主要是因为我发现我正在挖掘的网站在它处于头部状态时往往不会注意到它(我想我可以回到 puppeteer 隐身状态)。

最佳答案

我有同样的问题。我解决了一半。我在终端中启用了 X11 转发,现在一切都启动了。但是,我仍然在为此苦苦挣扎,因为我想在我的服务器上自动运行 headful 脚本而不受我的干扰,现在我正在思考我可以实现的方法。

关于ubuntu - 如何在服务器中运行 headful puppeteer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63126231/

相关文章:

java - digital ocean : How to run Docker command on newly created Droplet via Java API

ubuntu - 使用 EC2 Ubuntu 13 设置 Sublime SFTP

linux - 需要帮助设置此 Mercury Vagrant 服务器堆栈

python - 使用 Cython 创建 C 包装器 - Python

javascript - 如何使用 Puppeteer 求解和定位元素

digital ocean 上的 Django

java - Digital Ocean 中托管的应用程序的 MySQL JDBC 驱动程序连接字符串应该是什么?

python - 导入错误 : No module named bottle

javascript - 在 headless 服务器云上运行的特定网站上的 Puppeteer 超时

javascript - 在 Puppeteer 中使用伪类选择器评估类