Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

  • загрузите PhantomJS binary, загрузите его где-нибудь и сделайте его исполняемым (chmod +x)
  • если вы собираетесь делать скриншоты, настройте fontconfig (это довольно специфично для моей конфигурации, но цель состоит в том, чтобы имеют по крайней мере некоторые шрифты в вашей системе)
  • выполните следующие действия в PHP:
    $response = exec('/path/to/phantomjs myscript.js');

Ответ 2

На самом деле библиотека, называемая PHP PhantomJS, предназначена для того, чтобы сделать это проще для вас!

PHP PhantomJS - это гибкая библиотека PHP для загрузки страниц через PhantomJS без браузера и вернуть ответ страницы. Это удобно для тестирования веб-сайтов, требующих поддержки JavaScript, а также поддержки экрана.

Полная документация

Список функций:

  • Загрузка веб-страниц через браузер без браузера PhantomJS
  • Просмотр подробных данных ответа, включая содержимое страницы, заголовки, код состояния и т.д.
  • Переадресация дескрипторов
  • Просмотр ошибок консоли javascript
  • Просмотр подробной отлаженной информации PhantomJS
  • Сохранение снимков экрана на локальный диск
  • Установить размер области просмотра
  • Определить параметры захвата экрана x, y, ширины и высоты
  • Отображение страницы задержки за определенное время
  • Выполнить PhantomJS с параметрами командной строки
  • Легко создавать и запускать собственные скрипты PhantomJS

Убедитесь, что ваша версия PhantomJS совместима с вашей версией PHP PhantomJS:

Обратите внимание: Версия 4.0 этой библиотеки в настоящее время нерешенная проблема с PhantomJS 2.0.

Ответ 3

Недавно я опубликовал проект, предоставляющий 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.