как выполнить PhantomJS из PHP

Я хочу выполнить PhantomJS с PHP на localhost.

Может ли какой-нибудь орган объяснить, как выполнить PhantomJS с PHP и какой пакет я должен загрузить с phantomjs.org?

  • загрузите двоичный файл PhantomJS , загрузите его где-нибудь и сделайте его исполняемым ( chmod +x )
  • если вы собираетесь делать скриншоты, установите fontconfig (это довольно специфично для моей конфигурации, но цель состоит в том, чтобы иметь хотя бы некоторые шрифты в вашей системе)
  • выполните следующие действия в PHP:
    $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.