• Publicidad

Extraer tabla de temperatura en página web

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Extraer tabla de temperatura en página web

Notapor lis » 2015-04-08 16:29 @728

Hola a todos, tanto tiempo.

Les pido su ayuda: necesito descargar de una página los promedios mensuales de la temperatura máxima, media y mínima pero no lo consigo. Lo más cercano es esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. use LWP::Simple;
  6.  
  7. my $xls  = 'salida.xls';
  8.  
  9. my $URL= 'http://164.77.222.61/climatologia/php/temperaturaMensual.php?IdEstacion=330030&FechaIni=01-02-2000';
  10.  
  11. getstore($URL, $xls);
  12.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Me genera un excel, pero con todos los datos. Probé con los módulos Text::CSV, HTML::TableExtract y Text::Table y no he conseguido nada.

Les agradezco de antemano su ayuda.
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Publicidad

Re: Extraer tabla de temperatura en página web

Notapor explorer » 2015-04-08 19:26 @851

Lo que estás haciendo en el código es bajarte el código HTML de toda la página. Y claro, no estás extrayendo los datos ni convirtiéndolos en formato Excel.

Te faltan varios pasos intermedios ;)

Con HTML::TableExtract vas recorriendo las filas, extrayendo las columnas, y guardándolas en un objeto Text::CSV. Y luego le pides a Text::CSV que lo grabe en formato CSV. O mejor, usar Spreadsheet::Write, con el que puedes decidir si grabarlo en CSV o Excel.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer tabla de temperatura en página web

Notapor lis » 2015-04-09 09:59 @457

Gracias, explorer, por tu orientación. Este código hace lo que quiero, y en realidad no necesitaba guardar los datos en un csv o excel.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. use LWP::Simple;
  6. use HTML::TableExtract;
  7.  
  8. open(OUT, ">salida.txt") or die "$!\n";
  9.  
  10. my $url = get('http://164.77.222.61/climatologia/php/temperaturaMensual.php?IdEstacion=330030&FechaIni=01-02-2000');
  11.  
  12. my $te = HTML::TableExtract->new();
  13. $te->parse($url);
  14.  
  15. my $pm="Promedio Mensual";
  16.  
  17. foreach my $ts ($te->tables) {
  18. foreach  my $row ($ts->rows) {
  19. if($$row[0]=~/$pm/) {
  20. print OUT "$$row[1]  $$row[2]  $$row[4]\n" ;      
  21. }}}
  22.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados