Я хочу выполнить PhantomJS из PHP на localhost.
Может ли какой-нибудь орган объяснить, как выполнить PhantomJS с PHP и какой пакет я должен загрузить с phantomjs.org?
Я хочу выполнить PhantomJS из PHP на localhost.
Может ли какой-нибудь орган объяснить, как выполнить PhantomJS с PHP и какой пакет я должен загрузить с 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.