Navegando por
SourceForge me encontré con 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.
Primero vamos a descargarla e incluirla en nuestra aplicación de prueba. Un ejemplo básico de como utilizarla es:
<?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');
// Encontrar todas las imageness
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>';
?>
Vamos a hacer un ejemplo que muestre todos los artículos de mi blog:
<?php
$htmlCode = file_get_html('http://madhacking.com');
$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>";
echo "</pre>";
?>
Como podéis ver el funcionamiento es muy sencillo y no requiere esfuerzo programar algo sencillo. Os dejo los enlaces del proyecto.
Página Oficial:
PHP Simple HTML DOM Parser -
Manual de UsoSi buscáis en SourceForge encontraréis proyectos similares, como:
_
HTML Parser for PHP 4_
PHP Simple HTML SAX ParserEn NetTuts+ también hablan de esta librería para parsear HTML:
Parsing and Screen Scraping with the Simple HTML DOM Library.
En definitiva, se trata de una librería que no puede ahorrar mucho trabajo, si alguna vez has tenido que parsear HTML usando regex, lo entenderás.