Yo uso el código de XML::RSS::FromHTML:
Using perl Syntax Highlighting
- sub makeItemList {
- my $self = shift;
- my $html = shift;
- # Interpretamos el código HTML y crear con ello una lista:
- my @list;
- # $html = decode('iso-8859-15', $html); # Codificación ha 'iso-8859-15'.
- my $urls = $self->url();
- while ( $html =~ m{<div id="subnavigation">.+?<h2><span>(.+?)</span></h2>.+?<p class="preamble">(.+?)</p>}smg ) {
- # print "[$1][$2][$3]\n"; # Imprimir por pantalla lo que hemos encontrado.
- push(
- @list,
- { # La lista de los elementos (Título, Link, Descripcion).
- Link => $urls,
- title => $1,
- description => $2,
- fecha => $self->getDateTime(),
- }
- );
- }
- while ( $html =~ m{<div>.+?<p class="date">(.+?)</p>.+?<h4><a href=".+?">(.+?)</a></h4>}smg )
- { # Patrón por el que buscaremos las notícias.
- # print "[$1][$2][$3]\n"; # Imprimir por pantalla lo que hemos encontrado.
- push(
- @list,
- { # La lista de los elementos (Título, Link, Descripcion).
- Link => $urls,
- title => $1,
- description => $2,
- fecha => $self->getDateTime(),
- }
- );
- }
- while ( $html
- =~ m{</div><div class=".+?"><h3 class="">(.+?)</h3>.+?<p class="read-more">.+?<a href=".+?"><span>(.+?)</span></a>}smg
- ) { # Patrón por el que buscaremos las noticias.
- # print "[$1][$2][$3]\n"; # Imprimir por pantalla lo que hemos encontrado.
- push(
- @list,
- { # La lista de los elementos (Título, Link, Descripcion).
- Link => $urls,
- title => $1,
- description => $2,
- fecha => $self->getDateTime(),
- }
- );
- }
- return \@list; # Devuelve la lista que hemos generado.
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4