我想在本地主机上从 PHP 执行 PhantomJS。
任何人都可以解释如何从 PHP 执行 PhantomJS 以及我应该从 phantomjs.org 下载什么包?
我想在本地主机上从 PHP 执行 PhantomJS。
任何人都可以解释如何从 PHP 执行 PhantomJS 以及我应该从 phantomjs.org 下载什么包?
chmod +x
)$response = exec('/path/to/phantomjs myscript.js');
实际上有一个名为PHP PhantomJS的库,旨在让您更轻松!
PHP PhantomJS 是一个灵活的 PHP 库,通过 PhantomJS 无头浏览器加载页面并返回页面响应。它对于测试需要 javascript 支持并且还支持屏幕截图的网站非常方便。
功能列表:
- 通过 PhantomJS 无头浏览器加载网页
- 查看详细的响应数据,包括页面内容、标题、状态代码等。
- 处理重定向
- 查看 javascript 控制台错误
- 查看详细的 PhantomJS 调试信息
- 将屏幕截图保存到本地磁盘
- 设置视口大小
- 定义屏幕截图 x、y、宽度和高度参数
- 延迟页面渲染指定时间
- 使用命令行选项执行 PhantomJS
- 轻松构建和运行自定义 PhantomJS 脚本
不过,请确保您的PhantomJS版本与您的PHP PhantomJS版本兼容:
请注意:这个库的 4.0 版目前正在等待 PhantomJS 2.0 未解决的问题。
我最近发布了一个让 PHP 访问浏览器的项目。在这里获取:https ://github.com/merlinthemagic/MTS 。在底层它依赖于 PhantomJS。
下载和设置后,您只需使用以下代码:
$myUrl = "http://www.example.com";
$windowObj = \MTS\Factories::getDevices()->getLocalHost()->getBrowser('phantomjs')->getNewWindow($myUrl);
//now you can either retrive the DOM and parse it, like this:
$domData = $windowObj->getDom();
//or take screen shots
$imageData = $windowObj->screenshot();
//or use the mouse to click buttons:
$windowObj->mouseEventOnElement("[id=searchInput]", 'leftclick');
//or type with the keyboard :
$windowObj->sendKeyPresses("my search words");
//or load and execute custom javascript, fill forms etc, etc.