javascript php phantomjs php-phantomjs

javascript - Cómo ejecutar PhantomJS desde PHP



php-phantomjs (3)

Quiero ejecutar PhantomJS desde PHP en localhost.

¿Puede alguien explicar cómo ejecutar PhantomJS desde PHP y qué paquete debo descargar de phantomjs.org?


En realidad, hay una biblioteca llamada PHP PhantomJS , ¡destinada a facilitarte esto!

PHP PhantomJS es una biblioteca de PHP flexible para cargar páginas a través del navegador sin cabeza PhantomJS y devolver la respuesta de la página. Es útil para probar sitios web que requieren soporte de javascript y también admite capturas de pantalla.

Documentación completa

Lista de características :

  • Cargar páginas web a través del navegador sin cabeza PhantomJS
  • Ver datos de respuesta detallados, incluidos el contenido de la página, los encabezados, el código de estado, etc.
  • Manejar redirecciones
  • Ver errores de la consola javascript
  • Ver información detallada de depuración PhantomJS
  • Guardar capturas de pantalla en el disco local
  • Establecer el tamaño de la ventana gráfica
  • Definir los parámetros de captura de pantalla x, y, ancho y alto.
  • Retrasar la representación de la página por un tiempo específico
  • Ejecutar PhantomJS con opciones de línea de comando
  • Cree y ejecute fácilmente scripts PhantomJS personalizados

Sin embargo, asegúrese de que su versión de PhantomJS sea ​​compatible con su versión de PHP PhantomJS :

Tenga en cuenta que: la versión 4.0 de esta biblioteca actualmente está esperando un problema no resuelto con PhantomJS 2.0.


Recientemente publiqué un proyecto que le da acceso a PHP a un navegador. Consíguelo aquí: https://github.com/merlinthemagic/MTS . Bajo el capó se basa en PhantomJS.

Después de descargar y configurar, simplemente usarías el siguiente código:

$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.


  • descargue el binario de PhantomJS , cárguelo en algún lugar y conviértalo en ejecutable ( chmod +x )
  • Si va a hacer capturas de pantalla, configure fontconfig (esto es bastante específico para mi configuración, pero el objetivo es asegurarse de tener al menos algunas fuentes en su sistema)
  • ejecuta lo siguiente en PHP:
    $response = exec(''/path/to/phantomjs myscript.js'');