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.
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'');