<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<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=244045208-22082013><FONT color=#0000ff 
size=2 face=Arial>Hola Marc,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=244045208-22082013><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=244045208-22082013><FONT color=#0000ff 
size=2 face=Arial>Moltes gràcies, he probat el teu codi! en el meu cas, he 
preferit posar comes, <FONT color=#000000 size=3 face="Times New Roman">sep_char 
=> ',' </FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=244045208-22082013></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=244045208-22082013><FONT color=#0000ff 
size=2 face=Arial>Consulta de la linea </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=244045208-22082013><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left>open my $fh, ">:encoding(utf8)", $output_file or die 
$!;<BR></DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013><FONT color=#0000ff size=2 face=Arial>normalment poseu 
enconding? </FONT></SPAN></DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013></SPAN> </DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013><FONT color=#0000ff size=2 face=Arial>Disculpa pel meu 
dubte però, aquí el outfile agafa el nom del fitxer de sortida el 
data-csv, i el  </FONT> $fh? </SPAN></DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013></SPAN> </DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013><FONT color=#0000ff size=2 
face=Arial>Gràcies</FONT></SPAN></DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013></SPAN> </DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013><FONT color=#0000ff size=2 
face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><SPAN 
class=244045208-22082013><FONT color=#0000ff size=2 
face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
</DIV>
<DIV dir=ltr lang=ca class=OutlookMessageHeader align=left><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>Marc Egea 
i Sala<BR><B>Enviat:</B> dimecres, 21 de agost de 2013 23:32<BR><B>Per a:</B> 
Barcelona Perl Mongers<BR><B>Tema:</B> Re: [bcn-pm] RS: salutacions i 
consulta<BR></FONT><BR></DIV>
<DIV></DIV>
<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 =~ 
/>(.*)<\/FONT/;<BR><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 
dir=ltr><<A href="mailto:fxn@hashref.com" 
target=_blank>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><BR></DIV>
  <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><BR></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><BR></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><BR></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><BR></DIV>
  <DIV>    perl <A href="http://fetch_metar.pl" 
  target=_blank>fetch_metar.pl</A> LEBL LEGE</DIV>
  <DIV><BR></DIV>
  <DIV>Naturalment si volguessis ajuda en modificar-lo no dubtis a 
  escriure.</DIV>
  <DIV><BR></DIV>
  <DIV>Fa anar el modul LWP::UserAgent:</DIV>
  <DIV><BR></DIV>
  <DIV>    cpan install Bundle::LWP</DIV>
  <DIV><BR></DIV>
  <DIV>Espero que t'ajudi,</DIV>
  <DIV><BR></DIV>
  <DIV>Xavier</DIV>
  <DIV><BR></DIV>
  <DIV>
  <DIV>use strict;</DIV>
  <DIV>use warnings;</DIV>
  <DIV><BR></DIV>
  <DIV>use URI;</DIV>
  <DIV>use LWP::UserAgent;</DIV>
  <DIV><BR></DIV>
  <DIV>my @airports = @ARGV;</DIV>
  <DIV><BR></DIV>
  <DIV>die <<EOS unless @airports;</DIV>
  <DIV>Si us plau, passam'm algun codi d'aeroport, com ara</DIV>
  <DIV><BR></DIV>
  <DIV>    perl $0 LEBL LEGE</DIV>
  <DIV><BR></DIV>
  <DIV>EOS</DIV>
  <DIV><BR></DIV>
  <DIV>my $url = URI->new('<A href="http://aviationweather.gov/adds/metars'" 
  target=_blank>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><BR></DIV>
  <DIV>my $ua  = LWP::UserAgent->new;</DIV>
  <DIV>my $res = $ua->get($url);</DIV>
  <DIV><BR></DIV>
  <DIV>if ($res->is_success) {</DIV>
  <DIV>    my $html = $res->decoded_content;</DIV>
  <DIV><BR></DIV>
  <DIV>    while ($html =~ /<FONT[^>]+>([^<]+)/g) {</DIV>
  <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" 
  target=_blank>http://mail.pm.org/mailman/listinfo/barcelona-pm</A><BR>BCN Perl 
  Mongers: <A href="http://barcelona.pm.org" 
  target=_blank>http://barcelona.pm.org</A><BR></BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>