
Posiblemente hayas necesitado alguna vez obtener el contenido, o parte de éste, de una web, ya sea para recopilar datos o para realizar cualquier tipo de monitorización sobre algo, o simplemente porque quieres crear tu propio crawler, el cual analice páginas webs, como lo hacen los bots de Google, Bing, Yahoo,…
En PHP existe una librería bastante útil que nos ayuda a realizar este cometido. Su nombre es cURL y permite la conexión a otros entornos mediante distintos protocolos. Mediante cURL vamos a ver como puedes obtener el contenido de una Web en PHP.
Cómo obtener el contenido de una página Web mediante la librería cURL en PHP
Usando la librería cURL, puedes obtener el contenido completo de una página web. Una vez tengas su contenido, puedes realizar cualquier búsqueda sobre el mismo. Como ejemplo, en el código en PHP que te mostramos a continuación, tenemos una función que obtiene el contenido de una web cuya dirección URL se le pasa como parámetro, y devuelve una cadena de texto que representa a dicha página web.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function getContenidoWeb($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); return $data; } //Ejemplo de uso $cadena = getContenidoWeb('http://www.web.com'); |
Una vez que tengas el contenido de la web en una cadena, una posibilidad es parsearlo y convertirlo en un objeto XML o DOM, para que así sea más fácil su manejo.
Un ejemplo de ello es usando la clase DOMDocument. Mediante esta clase puedes parsear la cadena que has obtenido anteriormente y convertirla en un objeto XML o su respectivo árbol DOM. Un ejemplo de ello es el siguiente:
1 2 | $doc = new DOMDocument(); $doc->loadHTML($cadena); |
En este código, podemos ver como, en primer lugar, creamos un documento DOMDocument, en el que posteriormente cargamos el contenido de la variable $cadena, que es la obtenida anteriormente de la función getContenidoWeb.
De esta forma puedes obtener el contenido de una página Web mediante PHP y posteriormente convertirlo a XML o a su respectivo árbol DOM para poder gestionarlo de mejor manera.
