Para ver los programas de La Sexta en la TV estoy intentando crear una página con los enlaces sin Flash (directamente localizar el archivo mp4) para que mi Popcorn Hour los pueda reproducir.
He empezado por bajar una copia de la página http://www.lasexta.com/videos/programas.html para probar sin conexión. Para ello se puede usar el ejecutable lwp-mirror si tenemos instalada la librería LWP de CPAN:
- lwp-mirror http://www.lasexta.com/videos/programas.html programas.html
Así me guardo el archivo a disco. Desde el mismo directorio ejecuto el siguiente código:
Using perl Syntax Highlighting
- use strict;
- use warnings;
- # global variables
- my $programas_url = 'programas.html';
- die "$!\n" unless -e $programas_url ;
- # create HTML::TreeBuilder object with $programas_url
- use HTML::TreeBuilder;
- my $tree = HTML::TreeBuilder->new_from_file( $programas_url ) ;
- # we want to get the info between <ul> tags with class="page1", "page2", etc.
- # Inside the <ul> tag we find the programs and their links. Save that in
- # @ul_tags
- my @ul_tags = $tree->look_down( _tag => 'ul', class => qr/page\d/, );
- for my $ul ( @ul_tags ) {
- printf "found new page%s\n", $ul->as_HTML;
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Cuando lo ejecuto saco la información que necesito, pero no en el formato que me interesa. Lo que necesito es sacar los enlaces de los programas.
Si saco un Dumper con Data::Dumper de la información que se guarda en $ul, tiene esta pinta:
http://pastebin.com/cpqEiCy7
La información que me interesa aparece a partir de la línea 1053 en el pastebin. Ahí hay una referencia con toda la información que necesito para el paso siguiente: el nombre del programa y la URL.
No me sale desreferenciar todo esto, me lío.
Gracias de antemano por vuestra ayuda.