Parsear HTML con PHP

Hoy vemos una interesante aplicación para parsear código HTML. Su nombre es PHP Simple HTML DOM  Parser y está orientada a parsear el DOM de HTML.

 

Características:

  • Analizador de HTML DOM escrito en PHP5 + permite manipular HTML de una manera sencilla.
  • Requiere PHP 5+.
  • Es compatible con cualquier HTML válido.
  • Encuentra etiquetas en una página HTML con selectores, al igual que jQuery.
  • Extraer el contenido de HTML en una sola línea.

Primero vamos a descargarla e incluirla en nuestra aplicación de prueba. Un ejemplo básico de su uso sería:

<?php
    //Basic HTML parsing with PHP
    include("simplehtmldom/simple_html_dom.php");
 
    //Pasamos todo el contenido de la pagina a texto plano
    //echo $htmlCode = file_get_html('http://madhacking.com')->plaintext;
 
    $htmlCode = file_get_html('http://madhacking.com');
 
    // Localizar todas las imagenes
    foreach($htmlCode->find('img') as $element)
       echo $element->src . '<br>';
 
    echo "<hr />";
 
    // Mostrar todos los links
    foreach($htmlCode->find('a') as $element)
       echo $element->href . '<br>';
 
?>

 

Creamos un ejemplo que muestre todos los artículos de mi blog:

<?php
    $htmlCode = file_get_html('https://www.sololinux.es');
    $posts = $htmlCode->find('div[class=post]');
 
    foreach($htmlCode->find('div[class=post]') as $article) {
        $item['title']     = $article->find('h2', 0)->plaintext;
        $item['info']      = $article->find('div[class=post-info]',0);
        $item['body']      = $article->find('div[class=post-content]', 0)->plaintext;
        $item['category']  = $article->find('div[class=post-meta]', 0)->plaintext;
        $articles[] = $item;
    }
 
    echo "<pre>";
    print_r($articles);
    echo "</pre>";
 
?>

 

El funcionamiento es muy sencillo y no requiere apenas tener que programar.

Los enlaces del proyecto.
Página Oficial: PHP Simple HTML DOM ParserManual de Uso

 

Agregar comentario