• Ir al contenido principal
  • Ir a la barra lateral primaria

Luis Peris

Consultor y programador tecnológico

  • Contenido
    • Blog
    • Podcast
    • ¿Qué es?
    • Tutoriales
  • Desarrollo a medida
  • CTO Virtual
  • Formación
  • Newsletter
  • Contacto

Parsear HTML con PHP

27 enero, 2017 por LuisPeris 1 comentario

En muchas ocasiones necesitaremos acceder a la información que guarda un HTML (tu título, los valores de una tabla, etc. No obstante, nos encontramos frente a un problema ¿Cómo podemos parsear HTML con PHP?

Parsear HTML con PHP

Para que no quepa duda, cuando hablamos de Parsear HTML con PHP, nos referimos a coger HTML y poder acceder a la información que guarda todas sus etiquetas con PHP. Gracias a esto, podremos conseguir el título de la página (y guardarlo en una variable PHP), podremos coger información de las tablas, de DIVS, etc.

¿Y para que se utiliza esto? Pues se utiliza para muchísimas cosas, por ejemplo, podrás crear un robot que reviste una web que contenga más de 100.000 letras de canciones y que el robot se dedique a parsear la web y crear una base de datos en tu servidor con dichas canciones ¿Te imaginas lo que te costaría hacerlo manualmente?

Lógicamente, con PHP (al igual que con cualquier otro lenguaje de programación) podremos parsear una web, ya que el HTML, en definitiva, es XML, no obstante, en vez de crear nuestro propio programa, suele ser mucho más rápido utilizar alguna librería de PHP que haga esto, por ejemplo «PHP Simple HTML DOM Parser».

PHP Simple HTML DOM Parser

Esta librería no está formada únicamente por un fichero .php que nos permitirá de manera extremadamente sencilla parsear código HTML con PHP.

Es importante indicar que esta librería es totalmente gratuita y open-source por lo que no tendrás que pagar absolutamente nada.

Al estar formado únicamente por un fichero, sólo tendremos que incluirlo en nuestro proyecto, además de ser fácilmente configurable para frameworks PHP como pueden ser CodeIgniter, Laravel, etc.

¿Cómo utilizar PHP Simple HTML DOM Parser?

Esta librería está creada con objetos (si no sabes lo que son, recomiendo la lectura ¿Cómo aprender PHP?) ¿Esto qué quiere decir?

Muy simple, que sólo tendrás que hacer dos cosas cuando quieras utilizar esta librería, la primera será incluirla en tu proyecto y la segunda será instanciar el objeto, no obstante, esta librería sí que tiene una peculiaridad y es que los objetos no se instancia mediante el famoso «new objeto();», sino que se instancian mediante una función que devuelve un objeto.

Veamos un ejemplo:

<?php

include_once(«simple_html_dom.php»);

// Devuelve un objeto a $html
$html = file_get_html(‘http://luisperis.com’);

?>

¡Así de sencillo! Ya tendríamos inicializado un objeto, listo para empezar a pasear la web.

Ejemplos de PHP Simple HTML DOM Parser

Perfecto, ahora que ya sabemos cómo utilizar PHP Simple HTML DOM Parser, vamos a ver las tres formas en las que lo podemos cargar contenido HTML:

  • Cargando un string con el HTML
  • Cargando un fichero .html desde nuestro servidor
  • Cargando una URL

Veamos cómo quedaría el código:

<?php

// Creamos el objeto a partir de un STRING
$html = str_get_html(‘<html><body>¡Hola mundo!</body></html>’);

// Creamos el objeto a partir de una URL
$html = file_get_html(‘http:// luisperis.com/’);

// Creamos el objeto a partir de un fichero
$html = file_get_html(‘miweb.htm’);

?>

 ¡Perfecto! Ya tenemos inicializado el objeto correspondiente con el contenido HTML ¿Qué podemos hacer ahora?

Pues veamos algunos ejemplos de lo que podemos hacer con el objeto que tenemos en la variable $html:

<?php

// Recuperaremos en un array todos los enlaces que encuentre
$ret = $html->find(‘a’);

// Recuperaremos el div con ID «texto_principal»
$ret = $html->find(‘div[id= texto_principal]’);

// Recupera un array con todos los párrafos de texto.
echo $html->find(‘p’);

?>

Resumen y conclusión

Como podemos observar, parsear código HTML con PHP no es nada complicado si conoces las herramientas que nos puedan ayudar a dicha tarea.

No obstante, si tienes cualquier pregunta, no dudes en ponerte en contacto conmigo.

Archivado en:Otros temas

Quizás te interesa: Aprende a programar en 6 meses.

Interacciones con los lectores

Comentarios

  1. luis mario Palma dice

    22 febrero, 2019 en 7:21 pm

    muchas gracias me has quitado un gran peso de encima esta muy completo esto ya que se puede recuperar la etiqueta entera y tambien solo su contenido, muchas gracias.

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral primaria

¡IMPORTANTE!

Cada semana publico: 3 artículos de tecnología, 3 podcast y 2 vídeos en youtube.

Suscríbete a la newsletter y recibirás un email a la semana con todos los enlaces.

¡Suscríbete!

Un email semanal con todos los podcast, vídeos y artículos emitidos la última semana.


Te puedes borrar en cualquier momento, simplemente haz click en el enlace que encontrarás al pie de cada email.

   

Sigue mi Podcast en: