<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.23515"></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial>Hola Kenneth,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial>grŕcies per l'enllaç, en tot cas, també, ja em va bé aprendre 
a fer consultes via perl,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial>Salutacions</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=744100209-22082013><FONT color=#0000ff 
size=2 face=Arial>Enric</FONT></SPAN></DIV><BR>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>De:</B> Barcelona-pm 
[mailto:barcelona-pm-bounces+eagud.q=tv3.cat@pm.org] <B>En nom de 
</B>kenneth@gnunetworks.com<BR><B>Enviat:</B> dijous, 22 de agost de 2013 
10:45<BR><B>Per a:</B> barcelona-pm@pm.org<BR><B>Tema:</B> Re: [bcn-pm] RS: 
salutacions i consulta<BR></FONT><BR></DIV>
<DIV></DIV>
<P>Hola a tots,</P>
<P> </P>
<P>No cal un script per a baixar-se les dades.</P>
<P>Son en CSV a <A 
href="http://aviationweather.gov/adds/data/">http://aviationweather.gov/adds/data/</A></P>
<P> </P>
<P>En concret: <A 
href="http://aviationweather.gov/adds/data/dataserver_current/">http://aviationweather.gov/adds/data/dataserver_current/</A></P>
<P> </P>
<P>Només et cal filtrar les estacions que vols dins els CSVs :)</P>
<P> </P>
<P>Salut!<BR><BR>Kenneth</P>
<P>On Wed, 21 Aug 2013 23:32:06 +0200, Marc Egea i Sala wrote:</P>
<BLOCKQUOTE 
style="BORDER-LEFT: #1010ff 2px solid; PADDING-LEFT: 5px; WIDTH: 100%; MARGIN-LEFT: 5px" 
type="cite"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
  <DIV dir=ltr>A mi el més simple que se m'acut és utilitzar LWP::Simple com i 
  Text:CSV per fer el csv. Com diu en Xavi, aprofito que la web em deixa fer una 
  petició get directament amb el codi que vull...<BR>Pot ser alguna cosa així 
  (amb una regex ultrafŕcil i sense passar parŕmetres) :<BR><BR>#!/usr/bin/env 
  perl<BR><BR>use strict;<BR>use v5.10;<BR><BR>use LWP::Simple;<BR>use 
  Text::CSV;<BR><BR>my $output_file = 'data.csv';<BR>my 
  @airports    = qw( LEBL LEGE );<BR><BR>open my $fh, 
  ">:encoding(utf8)", $output_file or die $!;<BR>my $csv = Text::CSV->new 
  ( { binary => 1, sep_char => ';' } );<BR><BR>for my $code ( @airports ) 
  {<BR>    my $page = "<A 
  href="http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit">http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit</A>";<BR>    
  my $html = get( $page );<BR>    my @data = $html =~ 
  />(.*)<BR>    $csv->print( $fh => [ split( ' ', 
  $data[0] ) ] );<BR>    print $fh "\n"<BR>}<BR><BR>close 
  $fh;<BR><BR></DIV>
  <DIV class=gmail_extra><BR><BR>
  <DIV class=gmail_quote>El dia 21 d’agost de 2013 23.04, Xavier Noria 
  <SPAN><<A href="mailto:fxn@hashref.com">fxn@hashref.com</A>></SPAN> ha 
  escrit:<BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>
    <DIV dir=ltr>Hola Enric, 
    <DIV>En aquest problema podem simplificar una mica les coses observant com 
    va el website. Per exemple, el formulari es nomes una manera de fer una 
    peticio GET amb un cert query string, si fas un parell de proves veus com 
    van els parametres i aixi t'estalvies simular la navegacio (tot i que tambe 
    es podria fer).</DIV>
    <DIV>Pel que fa a la resposta, es un HTML prou senzill. Per a extreure dades 
    de documents HTML arbitraris normalment es fan anar parsers HTML, pero en 
    aquesta pagina d'estructura coneguda es mes que suficient al meu entendre 
    fer anar una expressio regular.</DIV>
    <DIV>Tambe fa mes facil la feina saber que les dades METAR son com son, una 
    tirallonga ASCII sense massa complicacio des d'aquest punt de vista.</DIV>
    <DIV>Et passo un script que podria ser un punt de partida, nomes treu les 
    dades METAR per stdout, una fila per aeroport. Rep els codis d'aeroport com 
    a arguments:</DIV>
    <DIV>    perl <A 
    href="http://fetch_metar.pl">fetch_metar.pl</A> LEBL LEGE</DIV>
    <DIV>Naturalment si volguessis ajuda en modificar-lo no dubtis a 
    escriure.</DIV>
    <DIV>Fa anar el modul LWP::UserAgent:</DIV>
    <DIV>    cpan install Bundle::LWP</DIV>
    <DIV>Espero que t'ajudi,</DIV>
    <DIV>Xavier</DIV>
    <DIV>
    <DIV>use strict;</DIV>
    <DIV>use warnings;</DIV>
    <DIV>use URI;</DIV>
    <DIV>use LWP::UserAgent;</DIV>
    <DIV>my @airports = @ARGV;</DIV>
    <DIV>die < 
    <DIV>Si us plau, passam'm algun codi d'aeroport, com ara</DIV>
    <DIV>    perl $0 LEBL LEGE</DIV>
    <DIV>EOS</DIV>
    <DIV>my $url = URI->new('<A 
    href="http://aviationweather.gov/adds/metars'">http://aviationweather.gov/adds/metars'</A>);</DIV>
    <DIV>$url->query_form(</DIV>
    <DIV>    station_ids => join(' ', @airports),</DIV>
    <DIV>    std_trans   => 'standard',</DIV>
    <DIV>    chk_metars  => 'on',</DIV>
    <DIV>    hoursStr    => 'most recent only',</DIV>
    <DIV>);</DIV>
    <DIV>my $ua  = LWP::UserAgent->new;</DIV>
    <DIV>my $res = $ua->get($url);</DIV>
    <DIV>if ($res->is_success) {</DIV>
    <DIV>    my $html = $res->decoded_content;</DIV>
    <DIV>    while ($html =~ /]+>([^ 
    <DIV>        print "$1\n";</DIV>
    <DIV>    } </DIV>
    <DIV>} else {</DIV>
    <DIV>    die $res->status_line;</DIV>
    <DIV>}</DIV></DIV></DIV><BR>_______________________________________________<BR>llista 
    dels Barcelona-pm<BR><A 
    href="mailto:Barcelona-pm@pm.org">Barcelona-pm@pm.org</A><BR><A 
    href="http://mail.pm.org/mailman/listinfo/barcelona-pm">http://mail.pm.org/mailman/listinfo/barcelona-pm</A><BR>BCN 
    Perl Mongers: <A 
    href="http://barcelona.pm.org">http://barcelona.pm.org</A></DIV></DIV></BLOCKQUOTE></DIV></DIV></BLOCKQUOTE>
<P> </P>
<DIV> </DIV></BODY></HTML>