Я хочу выполнить 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.