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】:您只需要安装puppeteer
。 puppeteer
自动下载适用于它的 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 进行生产部署?
我们如何在aws ec2 linux实例的不同端口安装多个apache服务器