logo-antoiba

Antonio Ibáñez Programming

Instalar casperjs y usarlo en php

PHP Problema JavaScript Casperjs Phamtonjs

A veces los caminos que recorremos en la programación son inescrutables, por ello he llegado a descubrir y perfeccionar lo que es el web scraping. Normalmente se usa cURL, una herramienta muy útil que sirve para conseguir páginas estáticas y hacer con ellas lo que queramos. El problema es cuando hay una página generada dinámicamente por Ajax o por ejemplo Angular. Entonces aquí tenemos un problema porque al cargar la página y recogerla mediante cURL está vacía.

Para ello se debe de usar casperjs, una herramienta muy útil y muy versátil para conseguir los datos de este tipo de páginas. Lo primero que debemos de hacer es instalarlo. Hay un wrapper para PHP que ha tenido muy buena acogida. Para instalarlo necesitamos primero tener instalado phamtonjs y casperjs. Con estos comandos en la consola podremos instalarlo, aunque si usamos un sistema Ubuntu/Debian debemos de tener cuidado. Ya que no podremos instalarlo con este comando.



npm install phantomjs
npm install casperjs

Quoteo lo que han dicho en el repositorio de Phamtonjs.

Debian/Ubuntu has a modified version of PhantomJS that can work headlessly, hence the problem with QXcb. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817277 for details.

Unfortunately, this is not something that we (=PhantomJS team) can fix.

Para Ubuntu/Debian debemos de seguir estos pasos.



wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2
tar -xvf phantomjs-2.1.1-linux-x86_64.tar
cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs

Para comprobar que están correctamente instalados abrimos una consola y escribimos Phantomjs --version y si nos devuelve la versión que tenemos actualmente, bueno, pues tenéis instalado bien phantomjs.

Para comprobar Casperjs se escribe casperjs y no saldrá mucha información sobre el programa. Si en alguno de los dos casos no os sale nada, no lo tenéis instalados como una variable del sistema.

Una vez instalados Phamtonjs y Casperjs y comprobados que funciona correctamente instalamos el wrapper en nuestro proyecto PHP.

Para ello, con composer nos vamos al directorio de nuestro proyecto y escribimos.



composer require phpcasperjs/phpcasperjs

Para comprobar que se ha instalado correctamente nos vamos a un controlador de nuestro framework y escribimos en la parte de arriba el famoso autoload seguido de use Browser\Casper.



require_once "../../vendors/autoload.php";

use Browser\Casper;

Luego en alguna parte del código escribimos $casper = new Casper()

Si no explota por ningún lado, vamos por buen camino jaja.

En el siguiente artículo escribiré como utilizarlo con PHP y haremos algo simple para que comprendáis su uso y podáis disfrutar de esta magnifica herramienta.


Escribe un comentario

Anterior Touch Events para móviles y tablets con JavaScript y jQuery

Está web utiliza cookies para asegurarse de una mejor experiencia de nuestra página webMás información sobre las cookies