PhantomJS es un navegador web sin cabeza que se puede programar con JavaScript. Funciona en Windows, macOS, Linux y FreeBSD. Utiliza QtWebKit como backend y ofrece un soporte rápido y nativo para diversas normas web, como el manejo de DOM, selectores CSS, JSON, Canvas y SVG.
Un ejemplo simple de script para PhantomJS es el siguiente: carga la página de inicio de Google, espera un momento y luego la captura en una imagen. Esto se logra con el siguiente código:
var page = require('webpage').create();
page.open('http://www.google.com', function() {
setTimeout(function() {
page.render('google.png');
phantom.exit();
}, 200);
});
PhantomJS es una solución óptima para diversas tareas:
- Automatización de páginas: Permite acceder a páginas web y extraer información utilizando la API DOM estándar o con bibliotecas comunes como jQuery.
- Captura de pantalla: Se puede capturar programáticamente el contenido web, incluyendo SVG y Canvas. También se pueden crear capturas de pantalla de sitios web con vista previa en miniatura.
- Pruebas de sitios web sin cabeza: Se pueden ejecutar pruebas funcionales con marcos como Jasmine, QUnit, Mocha, WebDriver, etc.
- Monitoreo de red: Se puede monitorear la carga de páginas y exportar como archivos HAR estándar. Además, se puede automatizar el análisis de rendimiento utilizando YSlow y Jenkins.
Si estás listo para usar PhantomJS, solo tienes que instalarlo y seguir la guía de inicio rápido. Si deseas aprender más, lee la sección de preguntas frecuentes, explora más ejemplos y estudia la documentación completa de la API. Para el código fuente, el seguimiento de problemas y otras informaciones de desarrollo, visita github.com/ariya/phantomjs.
PhantomJS está distribuido bajo la licencia BSD (SPDX: BSD-3-Clause) y sus contribuyentes han trabajado en él desde 2010 hasta 2018.