在web服务器上安装CasperJS和PhantomJS
Installing CasperJS and PhantomJS on a web server
我将phantomjs-1.9.7-macosx和casperjs1.1-beta放入两个独立的文件夹中。在根目录中,我有index.html,在那里我调用hello.js这是一个来自casparjs入门示例的最小抓取脚本。显然我得到了:
未捕获引用错误:未定义要求
因为require()在浏览器/客户端中不存在。
然后我尝试用PHP设置环境并执行它
putenv("PHANTOMJS_EXECUTABLE=/phantomjs/bin/phantomjs");
echo "Running PhantomJS version: ";
echo exec('/phantomjs/bin/phantomjs --version 2>&1');
echo "Running CasperJS version: ";
echo exec('/casperjs/bin/casperjs --version 2>&1');
但服务器以一个新的错误作出响应:
警告:由于安全原因,已在中禁用exec()
我找不到任何解决方法,所以我决定后退一步,在本地XAMPP web服务器上运行它。我遵循了类似问题的答案,但CasperJS再次出现错误:
[Erno 13]权限被拒绝;你安装了phantomjs吗?
我为目录尝试了"sudo-chmoda+rx",但没有成功。
我找不到解决我任何问题的办法。我用这些简单的例子只是为了测试。所有这些都可以从终端运行良好(以及本地web服务器上的PHP文件)。我认为问题在于服务器上的集成,无论是本地的还是网络的。
PhantomJS是一个浏览器,您需要调用它来执行一些导航脚本。这个脚本可能会打开页面并对结果进行处理。CasperJS构建在PhantomJS之上,简化了编写PhantomJS脚本所需的大量工作。
PhantomJS/CasperJS脚本无法在客户端浏览器中执行它需要在服务器上调用,在CasperJS/PantomJS内部运行,结果可以传递给客户端。
你要么需要
- 启用
exec
/shell_exec
或 - 使用编写您的CasperJS脚本作为web服务器
PhantomJS提供了web服务器模块,您可以使用该模块让PhantomJS接受HTTP请求,打开带有一些CasperJS代码的页面,做一些事情并将结果写入响应。您可以用这种方式启动一个CasperJS实例,并让PHP将请求转发给CasperJS。
- 我如何才能让CasperJS和PhantomJS在约塞米蒂玩得很好
- CasperJS / PhantomJS ES6 Promise Polyfill
- Casperjs显示Phantomjs崩溃
- 如何使用CasperJS或PhantomJS填写表格
- injectJs with PhantomJs and CasperJs
- 如何使用PhantomJS的sendEvent函数在CasperJS中键入数字或小写字母
- 在PhantomJS/CasperJS中回发
- CasperJS/PhantomJS Segmentation fault
- 如何使用casperJS、phantomJS运行js文件,而不在cmd中提供完整的文件路径
- Phantomjs/Casperjs没有正确评估德国亚马逊网站上的JS/Ajax
- CasperJS/PhantomJS没有't加载https页面
- 使用CasperJS和PhantomJS清除谷歌关键词工具
- 如何在PhantomJS或CasperJS中导入其他javascript模块
- PhantomJS和CasperJS点击链接即可获得html
- 在web服务器上安装CasperJS和PhantomJS
- CasperJS提供了对底层PhantomJS对象的引用吗?
- 如何保存当前的网页与casperjs/phantomjs
- 暂停和恢复CasperJS, PhantomJS脚本
- 我如何用CasperJS/PhantomJS生成高DPI的手机截图
- CasperJS PhantomJS SSL issues