Puppeteer:如何在 ec2 服务器上安装 puppeteer

Posted

技术标签:

【中文标题】Puppeteer:如何在 ec2 服务器上安装 puppeteer【英文标题】:Puppeteer : How to install puppeteer on ec2 server 【发布时间】:2019-04-24 00:16:41 【问题描述】:

我想在 ec2 服务器上安装 Puppeteer。那么我是否需要在需要抓取数据的每台机器上安装 puppeteer 和 chromium。

【问题讨论】:

【参考方案1】:

您只需要安装puppeteerpuppeteer 自动下载适用于它的 Chromium 版本 - 一切都开箱即用!

所以一旦你安装了puppeteer,你就可以开始了!

有关更多信息,请参阅puppeteer 自述文件:https://github.com/GoogleChrome/puppeteer#readme

【讨论】:

感谢@AJC24。但我还有一个疑问。在服务器上安装 Puppeteer 后,它是在服务器还是本地机器上安装 chromium。 如果你直接在服务器上完成安装,那么服务器也应该有 Chromium 安装。 那我们不需要在本地机器上安装 chromium 了吧? 没错。一切都将从您的服务器运行。如果你想在一台机器上运行puppeteer,安装puppeteer,然后那台机器就拥有了它需要的一切。之后不需要任何额外的安装。因此,如果您希望在您的服务器上安装puppeteer不是您的本地计算机,那么您只需要在您的服务器上安装puppeteer。就是这样。 我在 EC2 上遇到以下错误。 /opt/casper_web/node_modules/puppeteer/.local-chromium/linux-599821/chrome-linux/chrome: error while加载共享库:libXcomposite.so.1:无法打开共享对象文件:没有这样的文件或目录【参考方案2】:

将 puppeteer 安装到 EC2 可能是一件棘手的事情。还有一个问题没有解决。

要回答您的问题,您不必担心单独下载 Chromium,因为 npm i puppeteer 会负责下载与 puppeteer 兼容的 Chromium 并负责其余的工作。

但是,您将遇到的更麻烦的问题是确保在 EC2 上安装所需的依赖项以运行 Puppeteer。这些依赖项因发行版(CentOS、Ubuntu/Debian 等...)而异。

按照这些步骤,

    安装所需的所有依赖项。您可以参考此链接获取列表, https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix 安装完所有依赖项后,安装npm 并在.npmrc 中配置代理(如果您在VPC/proxy 后面)。 然后像往常一样继续使用npm i puppeteer 并像往常一样继续

让我知道这是否有效,如果您有任何疑问,请联系我。

【讨论】:

【参考方案3】:

安装 puppeteer 时,会自动安装 chromium。您唯一需要注意的是,您应该以无头模式运行它.. 如果您想以非无头模式(即使用 GUI)运行它,您需要有一个带有 EC2 的 VNC 服务器并启动脚本通过 VNC。只要您不需要特别以非无头模式运行它,您需要做的就是

npm i

npm start

puppeteer 自带 chromium 版本。

【讨论】:

以上是关于Puppeteer:如何在 ec2 服务器上安装 puppeteer的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Ubuntu 16.04 AWS EC2 实例上使用 puppeteer 启动 chromium headless

如何使用 webpack 捆绑 puppeteer 进行生产部署?

不同操作系统的 Puppeteer 安装

我们如何在aws ec2 linux实例的不同端口安装多个apache服务器

如何在 amazon micro ec2 服务器(Amazon Linux)上安装 SVN 客户端

无法在节点上安装 puppeteer 包