这很有帮助。我将我的评论移至答案,因为这种无头浏览需要大量研究,细节可能对其他人有所帮助。
幻名令人困惑。Phantom JS不是 Node 模块,您不能直接从 npm 注册表下载它。您可以从phantomjs.org 下载可执行二进制文件以安装在您的计算机上进行本地开发,您可以使用 buildpack 将其安装在 Heroku 上。
您可以为 Phantom JS 安装这两个流行的 Node 包装器。 这些不是核心 phantomjs.org 项目的一部分,但它们允许您从 Node 应用程序运行该库。
- 问题中引用的npm phantomjs 。此模块尝试下载 phantomjs 可执行文件的稳定版本作为依赖项,因此
npm install phantomjs --save
回答了这个问题,因为二进制文件存储在服务器知道查找 Phantom JS 的目录中。
- npm 幻象
我决定使用npm phantom
我的 Phantom 包装器和自定义 buildpack 在 Heroku 上安装 Phantom JS 二进制文件。我不喜欢在 Mac 上使用运行 Heroku 1.9.x 版本的 Phantom JS 2.0。有一些问题,所以还没有 Linux 2.0 可用。
Heroku 进行了一些小的语法更改,包括可选地使用buildpacks:add --index 1
带有数字位置的标志设置构建包的顺序。运行heroku buildpacks
以查看您正在使用什么以及它们的安装顺序。
如果您只有一个 buildpack 使用:set
并且必须提供 buildpacks,https
那么您不能只是复制和粘贴带有http
repos 的旧 Phantom 示例。
Heroku 的官方节点构建包
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-nodejs
非官方 Phantom JS buildpack(不是 npm 模块)
heroku buildpacks:add https://github.com/stomita/heroku-buildpack-phantomjs