[Linuxtrent] Re: Dati meteo dal sito di meteotrentino

  • From: Gino Perna <gino@xxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 2 Feb 2011 04:41:57 +0100

On Tue, Feb 01, 2011 at 08:54:13PM +0100, Daniele Nicolodi wrote:
> On 01/02/11 19:22, Gino Perna wrote:
> > On Tue, Feb 01, 2011 at 06:11:16PM +0100, Daniele Nicolodi wrote:
> >> On 01/02/11 18:06, Luca Manganelli wrote:
> >>> 2011/2/1 Daniele Nicolodi <daniele@xxxxxxxxxx>:
> >>>> Qualcuno sa di un'altra fonte degli stessi dati?
> 
> > navigando sul sito, si vede che comunque i dati provengono da
> > richieste in get ad uno script perl. Basta scriversi uno spider che
> > faccia la richiesta in get e te la parsi come credi.
> 
> Purtroppo i dai che mi interessano non vengono giù con una semplice GET.
> Sono quelli che ottieni selezionando una stazione meteo, mettiamo per
> esempio "T0129 - Trento (Laste)", "Output personalizzati".
La richiesta in get e' del tipo 
http://hydstraweb.provincia.tn.it/cgi-bin/webhyd/webhyd.pl?co=T0135&v=10.00_10.00,400.00_400.00,430.00_430.00,515.00_515.00,550.00_550.00&vn=Pioggia%20%28millimetri%29%20,Temperatura%20aria%20%28gradi%20Celsius%29%20,Umidita%27%20aria%20%28percentuale%29%20,Velocita%27%20vento%20media%20%28metri/secondo%29%20,Pressione%20atmosferica%20%28Ettopascal%29%20&p=99&o=download&i=Giornaliera|Day|1&cat=rs&d1=01/01/2010&d2=01/01/2011&Wed%20Feb%2002%202011%2004:04:37%20GMT+0100

che puoi semplificare in:
http://hydstraweb.provincia.tn.it/cgi-bin/webhyd/webhyd.pl?co=T0135&v=10.00_10.00,400.00_400.00,430.00_430.00,515.00_515.00,550.00_550.00&p=99&o=download&i=Giornaliera|Day|1&cat=rs&d1=01/01/2010&d2=01/01/2011&Wed%20Feb%2002%202011%2004:04:37%20GMT+0100

dalla quale hai come risultato una pagina html nella quale c'e' l'URL del file 
da scaricare
.....onclick="location.href=\'http://hydstraweb.provincia.tn.it/webhyd/users/12176513/T0135_20110202.zip\';"
 id="down......

dove 12176513 e' un numero casuale generato dal server in un cookie che torna.
(e che a te non serve).
Basta quindi scaricarsi il file!


Oppure se scegli la forma tabellare puoi fare un parsing della pagina 
direttamente dall'html che torna.


Quindi la prima richiesta la fai con qualcosa di simile a questo:
http://docstore.mik.ua/orelly/perl/cookbook/ch20_03.htm
dalla quale una volta ricevuto il contenuto della pagina cerchi 
http://hydstra.*\.zip ed a quel punto
con (mettendo in url e file la roba giusta)

#!/usr/bin/perl

use strict;
use warnings;

use LWP::Simple;

my $url = 'http://marinetraffic2.aegean.gr/ais/getkml.aspx';
my $file = 'data.kml';
Fai attenzione alla netiquette nei confronti del sito.

getstore($url, $file);

hai recuperato il file...


ora hai tutti gli elementi per scrivere lo spider...

;)

gino

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: