node.js - 如何使用 phantomjs 作为 npm 包

标签 node.js web-scraping phantomjs web-crawler

我正在编写一个需要 phantomjs 的 Node 脚本,我想与其他人共享该脚本,他应该能够运行脚本,而无需在系统中单独安装 phantomjs。

我尝试在我的 Node 脚本中像这样安装它(也有 package.json 文件)。

npm install --save phantomjs

然后我尝试运行 phantomjs home page 中给出的脚本

console.log('Loading a web page');
var page = require('webpage').create();
var url = 'http://phantomjs.org/';
page.open(url, function (status) {
  //Page is loaded!
  phantom.exit();
});

它说找不到模块网页。如果我单独安装网页,例如

 npm install --save webpage 

然后它说,create 不是一个函数。

有没有一种方法可以让我在不下载并安装到系统中的情况下使用 phantomjs?

最佳答案

PhantomJS 最初是一个单独的二进制文件,而不是 npm 模块,如果您想运行在其自己的页面上显示的脚本,请像这样运行它

/path/to/phatomjs /path/to/script.js

如果您不希望用户安装它,您可以创建一个程序来为他们安装它并可能运行脚本。我曾经使用 Innosetup 安装程序和 nwjs 来实现此目的。

<小时/> 如果你想在 npm 模块中使用 PhantomJS,你可以使用 phantom包,但创建脚本的语法会有所不同,请参阅包页面上的示例以及 examples folder

关于node.js - 如何使用 phantomjs 作为 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969094/

相关文章:

javascript - 在 Casper JS(基于 Phantom JS)中,如何捕获 DOM 完成后加载的 JavaScript 错误?

node.js - webpack-dev-server 找不到模块 'webpack'

mysql - 使用 jugglingdb 选择另一个表中存在 id 的结果

node.js - 如何使用@ResolveField 在 nestjs/graphql 中创建多级嵌套查询?

javascript - 简单的 Nodejs Web 服务器总是发送文本/纯 css 和 js 文件

python - Scrapy:通过 cmdLine 从同一 python 进程运行多个蜘蛛失败

python - 无法正确解析某些元素的名称

docker - 在Docker容器中运行的PhantomJS服务器

python - 刮痧用美汤和 Selenium 问题

javascript - PhantomJS 在 Linux 上的 phantom.exit() 后崩溃