From eagud.q a tv3.cat Mon Aug 19 02:09:21 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Mon, 19 Aug 2013 11:09:21 +0200 Subject: [bcn-pm] salutacions i consulta Message-ID: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> Hola bon dia, sóc l'Enric Agud, meteoròleg de Tv3. Fa un temps que també programo una mica en perl per alguns processos a la feina. La meva pregunta és, si aquest mail també es per a fer consultes sobre dubtes que puc tenir alhora de programar... Moltes gràcies Salutacions Enric -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From frankie a telecos.upc.edu Mon Aug 19 02:39:39 2013 From: frankie a telecos.upc.edu (Francesc Guasch) Date: Mon, 19 Aug 2013 11:39:39 +0200 Subject: [bcn-pm] salutacions i consulta In-Reply-To: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> Message-ID: <20130819093934.GA7730@etsetb.upc.edu> On Mon, Aug 19, 2013 at 11:09:21AM +0200, Agud Pique, Enric wrote: > Hola bon dia, > > soc l'Enric Agud, meteoroleg de Tv3. Fa un temps que tambe programo una > mica en perl per alguns processos a la feina. La meva pregunta es, si > aquest mail tambe es per a fer consultes sobre dubtes que puc tenir alhora > de programar... > Efectivament pots consultar dubtes, a veure si els sabem resoldre ! From marc.egea.sala a gmail.com Mon Aug 19 03:48:32 2013 From: marc.egea.sala a gmail.com (Marc Egea i Sala) Date: Mon, 19 Aug 2013 12:48:32 +0200 Subject: [bcn-pm] salutacions i consulta In-Reply-To: <20130819093934.GA7730@etsetb.upc.edu> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> Message-ID: Enric: Endavant amb els dubtes, a viam què en podem treure... D'altra banda, tinc molta curiositat per saber exactament quin tipus de feines fas anar amb Perl. En podries fer cinc cèntims? Gràcies! Marc. El dia 19 d’agost de 2013 11.39, Francesc Guasch ha escrit: > On Mon, Aug 19, 2013 at 11:09:21AM +0200, Agud Pique, Enric wrote: > > Hola bon dia, > > > > soc l'Enric Agud, meteoroleg de Tv3. Fa un temps que tambe programo > una > > mica en perl per alguns processos a la feina. La meva pregunta es, si > > aquest mail tambe es per a fer consultes sobre dubtes que puc tenir > alhora > > de programar... > > > Efectivament pots consultar dubtes, a veure si els sabem > resoldre ! > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Wed Aug 21 13:12:07 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Wed, 21 Aug 2013 22:12:07 +0200 Subject: [bcn-pm] RS: salutacions i consulta References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu> Message-ID: <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Hola bona nit Marc, Francesc i resta de Perl Mongers, faig servir a la feina scripts de perl per llençar simulacions de models numèrics, i també per baixar-me fitxers grib, imatges d'internet, i per llegir, modificar, fitxers plans, entre altres coses...he après una mica a base de preguntar, mirar per internet,..., però encara tinc moltes mancances,... La meva consulta: La web http://aviationweather.gov/adds/metars/ permet baixar dades meteorològiques d'aeroports. Cada aeroport te un a codi, per exemple, Barcelona es LEBL i Girona, LEGE. Per baixar les dades, s'introduiexen els codis dels aeroports en la casella en blanc...per exemple LEBL LEGE, i després del SUBMIT, les dades que surten son les següents,...amb una capçalera que no interessa...aquesta és la informació en format metar que després els meteos interpretem. LEBL 212000Z 21005KT 170V230 9999 SCT030 26/20 Q1018 NOSIG LEGE 212000Z VRB02KT CAVOK 22/17 Q1018 Jo el que vull es automatitzar aquesta consulta i guarda cada metar en una linea dins un fitxer pla, ja sigui dat o csv. Ho tinc fet en php, però voldria saber si tambe es pot fer amb perl? se baixar fitxers, o imatges, però no sé fer consultes i baixar després les dades... Bé, espero explicar-me, de vegades costa... Bona nit i gràcies per llegir el mail Salutacions -----Missatge original----- De: Barcelona-pm en nom de Marc Egea i Sala Enviat el: dl. 19/08/2013 12:48 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] salutacions i consulta Enric: Endavant amb els dubtes, a viam què en podem treure... D'altra banda, tinc molta curiositat per saber exactament quin tipus de feines fas anar amb Perl. En podries fer cinc cèntims? Gràcies! Marc. El dia 19 d'agost de 2013 11.39, Francesc Guasch ha escrit: > On Mon, Aug 19, 2013 at 11:09:21AM +0200, Agud Pique, Enric wrote: > > Hola bon dia, > > > > soc l'Enric Agud, meteoroleg de Tv3. Fa un temps que tambe programo > una > > mica en perl per alguns processos a la feina. La meva pregunta es, si > > aquest mail tambe es per a fer consultes sobre dubtes que puc tenir > alhora > > de programar... > > > Efectivament pots consultar dubtes, a veure si els sabem > resoldre ! > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org From fxn a hashref.com Wed Aug 21 14:04:24 2013 From: fxn a hashref.com (Xavier Noria) Date: Wed, 21 Aug 2013 23:04:24 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Message-ID: Hola Enric, 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). 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. 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. 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: perl fetch_metar.pl LEBL LEGE Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. Fa anar el modul LWP::UserAgent: cpan install Bundle::LWP Espero que t'ajudi, Xavier use strict; use warnings; use URI; use LWP::UserAgent; my @airports = @ARGV; die <new('http://aviationweather.gov/adds/metars'); $url->query_form( station_ids => join(' ', @airports), std_trans => 'standard', chk_metars => 'on', hoursStr => 'most recent only', ); my $ua = LWP::UserAgent->new; my $res = $ua->get($url); if ($res->is_success) { my $html = $res->decoded_content; while ($html =~ /]+>([^<]+)/g) { print "$1\n"; } } else { die $res->status_line; } -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From marc.egea.sala a gmail.com Wed Aug 21 14:32:06 2013 From: marc.egea.sala a gmail.com (Marc Egea i Sala) Date: Wed, 21 Aug 2013 23:32:06 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Message-ID: 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... Pot ser alguna cosa així (amb una regex ultrafàcil i sense passar paràmetres) : #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; my $output_file = 'data.csv'; my @airports = qw( LEBL LEGE ); open my $fh, ">:encoding(utf8)", $output_file or die $!; my $csv = Text::CSV->new ( { binary => 1, sep_char => ';' } ); for my $code ( @airports ) { my $page = " http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit "; my $html = get( $page ); my @data = $html =~ />(.*)<\/FONT/; $csv->print( $fh => [ split( ' ', $data[0] ) ] ); print $fh "\n" } close $fh; El dia 21 d’agost de 2013 23.04, Xavier Noria ha escrit: > Hola Enric, > > 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). > > 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. > > 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. > > 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: > > perl fetch_metar.pl LEBL LEGE > > Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. > > Fa anar el modul LWP::UserAgent: > > cpan install Bundle::LWP > > Espero que t'ajudi, > > Xavier > > use strict; > use warnings; > > use URI; > use LWP::UserAgent; > > my @airports = @ARGV; > > die < Si us plau, passam'm algun codi d'aeroport, com ara > > perl $0 LEBL LEGE > > EOS > > my $url = URI->new('http://aviationweather.gov/adds/metars'); > $url->query_form( > station_ids => join(' ', @airports), > std_trans => 'standard', > chk_metars => 'on', > hoursStr => 'most recent only', > ); > > my $ua = LWP::UserAgent->new; > my $res = $ua->get($url); > > if ($res->is_success) { > my $html = $res->decoded_content; > > while ($html =~ /]+>([^<]+)/g) { > print "$1\n"; > } > } else { > die $res->status_line; > } > > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org > -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From kenneth a gnunetworks.com Thu Aug 22 01:45:28 2013 From: kenneth a gnunetworks.com (kenneth a gnunetworks.com) Date: Thu, 22 Aug 2013 10:45:28 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Message-ID: <352f4d4891ed95bcaf4128cf69a7260c@gnunetworks.com> Hola a tots, No cal un script per a baixar-se les dades. Son en CSV a http://aviationweather.gov/adds/data/ [7] En concret: http://aviationweather.gov/adds/data/dataserver_current/ [8] Només et cal filtrar les estacions que vols dins els CSVs :) Salut! Kenneth On Wed, 21 Aug 2013 23:32:06 +0200, Marc Egea i Sala wrote: > 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... > Pot ser alguna cosa així (amb una regex ultrafàcil i sense passar paràmetres) : > > #!/usr/bin/env perl > > use strict; > use v5.10; > > use LWP::Simple; > use Text::CSV; > > my $output_file = 'data.csv'; > my @airports = qw( LEBL LEGE ); > > open my $fh, ">:encoding(utf8)", $output_file or die $!; > my $csv = Text::CSV->new ( { binary => 1, sep_char => ';' } ); > > for my $code ( @airports ) { > my $page = "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit [5]"; > my $html = get( $page ); > my @data = $html =~ />(.*) > $csv->print( $fh => [ split( ' ', $data[0] ) ] ); > print $fh "n" > } > > close $fh; > > El dia 21 d'agost de 2013 23.04, Xavier Noria ha escrit: > >> Hola Enric, >> 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). >> 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. >> 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. >> 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: >> perl fetch_metar.pl [1] LEBL LEGE >> Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. >> Fa anar el modul LWP::UserAgent: >> cpan install Bundle::LWP >> Espero que t'ajudi, >> Xavier >> >> use strict; >> use warnings; >> use URI; >> use LWP::UserAgent; >> my @airports = @ARGV; >> die < >> Si us plau, passam'm algun codi d'aeroport, com ara >> perl $0 LEBL LEGE >> EOS >> my $url = URI->new('http://aviationweather.gov/adds/metars'); >> $url->query_form( >> station_ids => join(' ', @airports), >> std_trans => 'standard', >> chk_metars => 'on', >> hoursStr => 'most recent only', >> ); >> my $ua = LWP::UserAgent->new; >> my $res = $ua->get($url); >> if ($res->is_success) { >> my $html = $res->decoded_content; >> while ($html =~ /]+>([^ >> print "$1n"; >> } >> } else { >> die $res->status_line; >> } >> _______________________________________________ >> llista dels Barcelona-pm >> Barcelona-pm a pm.org [2] >> http://mail.pm.org/mailman/listinfo/barcelona-pm [3] >> BCN Perl Mongers: http://barcelona.pm.org [4] Links: ------ [1] http://fetch_metar.pl [2] mailto:Barcelona-pm a pm.org [3] http://mail.pm.org/mailman/listinfo/barcelona-pm [4] http://barcelona.pm.org [5] http://aviationweather.gov/adds/metars/?station_ids=$code|+|amp|+|std_trans=standard|+|amp|+|chk_metars=on|+|amp|+|hoursStr=most+recent+only|+|amp|+|submitmet=Submit [6] mailto:fxn a hashref.com [7] http://aviationweather.gov/adds/data/ [8] http://aviationweather.gov/adds/data/dataserver_current/ -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Thu Aug 22 01:51:38 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Thu, 22 Aug 2013 10:51:38 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> Hola Xavier, moltes gràcies pel codi, l'estic mirant ara Una consulta, una linea que no entenc del tot, la següent, exactament que fa? while ($html =~ /]+>([^<]+)/g) Enric ________________________________ De: Barcelona-pm [mailto:barcelona-pm-bounces+eagud.q=tv3.cat a pm.org] En nom de Xavier Noria Enviat: dimecres, 21 de agost de 2013 23:04 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] RS: salutacions i consulta Hola Enric, 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). 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. 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. 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: perl fetch_metar.pl LEBL LEGE Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. Fa anar el modul LWP::UserAgent: cpan install Bundle::LWP Espero que t'ajudi, Xavier use strict; use warnings; use URI; use LWP::UserAgent; my @airports = @ARGV; die <new('http://aviationweather.gov/adds/metars'); $url->query_form( station_ids => join(' ', @airports), std_trans => 'standard', chk_metars => 'on', hoursStr => 'most recent only', ); my $ua = LWP::UserAgent->new; my $res = $ua->get($url); if ($res->is_success) { my $html = $res->decoded_content; while ($html =~ /]+>([^<]+)/g) { print "$1\n"; } } else { die $res->status_line; } -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From fxn a hashref.com Thu Aug 22 01:56:03 2013 From: fxn a hashref.com (Xavier Noria) Date: Thu, 22 Aug 2013 10:56:03 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: <101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> <101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> Message-ID: 2013/8/22 Agud Pique, Enric ** > Hola Xavier, > > moltes gràcies pel codi, l'estic mirant ara > > Una consulta, una linea que no entenc del tot, la següent, exactament que > fa? > > while ($html =~ /]+>([^<]+)/g) > Hola Enric, Abans d'explicar-t'ho, saps que es una expressio regular? -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Thu Aug 22 01:59:41 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Thu, 22 Aug 2013 10:59:41 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A605DB2CA9@LLOBREGAT.ad-ccrtv.local> una mica, permeten detectar si un patró de searching es troba en una cadena de caràcters... ________________________________ De: Barcelona-pm [mailto:barcelona-pm-bounces+eagud.q=tv3.cat a pm.org] En nom de Xavier Noria Enviat: dijous, 22 de agost de 2013 10:56 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] RS: salutacions i consulta 2013/8/22 Agud Pique, Enric Hola Xavier, moltes gràcies pel codi, l'estic mirant ara Una consulta, una linea que no entenc del tot, la següent, exactament que fa? while ($html =~ /]+>([^<]+)/g) Hola Enric, Abans d'explicar-t'ho, saps que es una expressio regular? -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Thu Aug 22 02:01:50 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Thu, 22 Aug 2013 11:01:50 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A605DB2CAA@LLOBREGAT.ad-ccrtv.local> Hola Marc, Moltes gràcies, he probat el teu codi! en el meu cas, he preferit posar comes, sep_char => ',' Consulta de la linea open my $fh, ">:encoding(utf8)", $output_file or die $!; normalment poseu enconding? Disculpa pel meu dubte però, aquí el outfile agafa el nom del fitxer de sortida el data-csv, i el $fh? Gràcies ________________________________ De: Barcelona-pm [mailto:barcelona-pm-bounces+eagud.q=tv3.cat a pm.org] En nom de Marc Egea i Sala Enviat: dimecres, 21 de agost de 2013 23:32 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] RS: salutacions i consulta 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... Pot ser alguna cosa així (amb una regex ultrafàcil i sense passar paràmetres) : #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; my $output_file = 'data.csv'; my @airports = qw( LEBL LEGE ); open my $fh, ">:encoding(utf8)", $output_file or die $!; my $csv = Text::CSV->new ( { binary => 1, sep_char => ';' } ); for my $code ( @airports ) { my $page = "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; my $html = get( $page ); my @data = $html =~ />(.*)<\/FONT/; $csv->print( $fh => [ split( ' ', $data[0] ) ] ); print $fh "\n" } close $fh; El dia 21 d'agost de 2013 23.04, Xavier Noria ha escrit: Hola Enric, 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). 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. 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. 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: perl fetch_metar.pl LEBL LEGE Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. Fa anar el modul LWP::UserAgent: cpan install Bundle::LWP Espero que t'ajudi, Xavier use strict; use warnings; use URI; use LWP::UserAgent; my @airports = @ARGV; die <new('http://aviationweather.gov/adds/metars'); $url->query_form( station_ids => join(' ', @airports), std_trans => 'standard', chk_metars => 'on', hoursStr => 'most recent only', ); my $ua = LWP::UserAgent->new; my $res = $ua->get($url); if ($res->is_success) { my $html = $res->decoded_content; while ($html =~ /]+>([^<]+)/g) { print "$1\n"; } } else { die $res->status_line; } _______________________________________________ llista dels Barcelona-pm Barcelona-pm a pm.org http://mail.pm.org/mailman/listinfo/barcelona-pm BCN Perl Mongers: http://barcelona.pm.org -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Thu Aug 22 02:03:09 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Thu, 22 Aug 2013 11:03:09 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: <352f4d4891ed95bcaf4128cf69a7260c@gnunetworks.com> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> <352f4d4891ed95bcaf4128cf69a7260c@gnunetworks.com> Message-ID: <101279E56795E74AA9167144EDE340A605DB2CAB@LLOBREGAT.ad-ccrtv.local> Hola Kenneth, gràcies per l'enllaç, en tot cas, també, ja em va bé aprendre a fer consultes via perl, Salutacions Enric ________________________________ De: Barcelona-pm [mailto:barcelona-pm-bounces+eagud.q=tv3.cat a pm.org] En nom de kenneth a gnunetworks.com Enviat: dijous, 22 de agost de 2013 10:45 Per a: barcelona-pm a pm.org Tema: Re: [bcn-pm] RS: salutacions i consulta Hola a tots, No cal un script per a baixar-se les dades. Son en CSV a http://aviationweather.gov/adds/data/ En concret: http://aviationweather.gov/adds/data/dataserver_current/ Només et cal filtrar les estacions que vols dins els CSVs :) Salut! Kenneth On Wed, 21 Aug 2013 23:32:06 +0200, Marc Egea i Sala wrote: 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... Pot ser alguna cosa així (amb una regex ultrafàcil i sense passar paràmetres) : #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; my $output_file = 'data.csv'; my @airports = qw( LEBL LEGE ); open my $fh, ">:encoding(utf8)", $output_file or die $!; my $csv = Text::CSV->new ( { binary => 1, sep_char => ';' } ); for my $code ( @airports ) { my $page = "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; my $html = get( $page ); my @data = $html =~ />(.*) $csv->print( $fh => [ split( ' ', $data[0] ) ] ); print $fh "\n" } close $fh; El dia 21 d'agost de 2013 23.04, Xavier Noria ha escrit: Hola Enric, 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). 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. 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. 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: perl fetch_metar.pl LEBL LEGE Naturalment si volguessis ajuda en modificar-lo no dubtis a escriure. Fa anar el modul LWP::UserAgent: cpan install Bundle::LWP Espero que t'ajudi, Xavier use strict; use warnings; use URI; use LWP::UserAgent; my @airports = @ARGV; die < Si us plau, passam'm algun codi d'aeroport, com ara perl $0 LEBL LEGE EOS my $url = URI->new('http://aviationweather.gov/adds/metars'); $url->query_form( station_ids => join(' ', @airports), std_trans => 'standard', chk_metars => 'on', hoursStr => 'most recent only', ); my $ua = LWP::UserAgent->new; my $res = $ua->get($url); if ($res->is_success) { my $html = $res->decoded_content; while ($html =~ /]+>([^ print "$1\n"; } } else { die $res->status_line; } _______________________________________________ llista dels Barcelona-pm Barcelona-pm a pm.org http://mail.pm.org/mailman/listinfo/barcelona-pm BCN Perl Mongers: http://barcelona.pm.org -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From fxn a hashref.com Thu Aug 22 02:07:36 2013 From: fxn a hashref.com (Xavier Noria) Date: Thu, 22 Aug 2013 11:07:36 +0200 Subject: [bcn-pm] RS: salutacions i consulta In-Reply-To: <101279E56795E74AA9167144EDE340A605DB2CA9@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local> <20130819093934.GA7730@etsetb.upc.edu> <101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local> <101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> <101279E56795E74AA9167144EDE340A605DB2CA9@LLOBREGAT.ad-ccrtv.local> Message-ID: 2013/8/22 Agud Pique, Enric ** > una mica, permeten detectar si un patró de searching es troba en una > cadena de caràcters... > Perfecte. En aquella linia tenim l'HTML de la pagina a la variable $html i fem anar l'operador m// amb l'opcio /g activada. Aixo es com un "find all", es a dir, itera per totes les ocurrencies no solapades del patro a la cadena $html. Cada cop que m//g troba una ocurrencia, entra al cos del while i la variable $1 conte la primera captura de l'expressio regular que em definit per a que contingui el text que busquem. Un cop esgotades les ocurrencies, el bucle while surt. -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Fri Aug 23 13:03:43 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Fri, 23 Aug 2013 22:03:43 +0200 Subject: [bcn-pm] RS: RS: salutacions i consulta References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA9@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A60486FDDD@LLOBREGAT.ad-ccrtv.local> Gracies Xavier, Salutacions i bon cap de setmana Enric -----Missatge original----- De: Barcelona-pm en nom de Xavier Noria Enviat el: dj. 22/08/2013 11:07 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] RS: salutacions i consulta 2013/8/22 Agud Pique, Enric ** > una mica, permeten detectar si un patró de searching es troba en una > cadena de caràcters... > Perfecte. En aquella linia tenim l'HTML de la pagina a la variable $html i fem anar l'operador m// amb l'opcio /g activada. Aixo es com un "find all", es a dir, itera per totes les ocurrencies no solapades del patro a la cadena $html. Cada cop que m//g troba una ocurrencia, entra al cos del while i la variable $1 conte la primera captura de l'expressio regular que em definit per a que contingui el text que busquem. Un cop esgotades les ocurrencies, el bucle while surt. From eagud.q a tv3.cat Sat Aug 24 10:32:18 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Sat, 24 Aug 2013 19:32:18 +0200 Subject: [bcn-pm] RS: consulta per eliminar linies en blanc References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A60486FDE1@LLOBREGAT.ad-ccrtv.local> Hola companys, Al final prefereixo posar el codis dels metars dins l'script pq en tinc uns quants... Dubte: algunes consultes tornen sense dades, i aleshores les lines corresponents queden blanques. Necessito eliminar aquestes linies blanques, exemple, LFPO 241700Z 30011KT 270V330 9999 SCT030 BKN090 20/12 Q1012 NOSIG LFQQ 241700Z 23007KT 7000 -RA BKN013 BKN140 17/16 Q1010 TEMPO 3000 RA BKN007 LFRB 241700Z 31007KT 260V330 9999 BKN030 BKN230 17/10 Q1019 NOSIG LFRC 241700Z AUTO 27016KT 9999 OVC034 16/11 Q1015 LFRD 241700Z AUTO 30017KT 9999 SCT032 BKN042 17/09 Q1017 LFRK 241700Z AUTO 30013KT 9999 SCT029 BKN060 OVC072 18/12 Q1014 LFRN 241700Z AUTO 32013KT 9999 NSC 18/08 Q1017 LFRS 241700Z 28010KT 240V320 9999 FEW046 BKN250 19/10 Q1017 NOSIG LFRQ 241700Z AUTO 31015KT 9999 FEW032 BKN038 17/11 Q1019 LFRV 241700Z AUTO 31010KT 9999 NSC 18/08 Q1018 LFSD 241700Z AUTO 19005KT 130V220 9999 //////CB 21/17 Q1012 He probat d'eliminar-les afegint al codi aquesta comanda $fh =~ s/\n+/\n/g; però no he tingut èxit. Potser he d'afegir alguna propietat del paquet TEXT::CSV per eliminar-les? Moltes gràcies per l'ajuda, espero que algu em pugui respondre, Salutacions Enric #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; chdir('/home/enric/csv'); my $output_file = 'metar_brut.csv'; my @airports = qw( LFBD LFBF LFBH LFBL LFBO LFBZ LFKJ LFLL LFLS LFLS LFMD LFME LFMH LFMK LFML LFMN LFMO LFMP LFMU LFOH LFOP LFPB LFPG LFPO LFPW LFQQ LFRB LFRC LFRD LFRK LFRN LFRS LFRQ LFRV LFSA LFSD LFSF LFSN LFSR LFST LFTW EHAM EHEH EHGG EHRD EICK EIDW EINN ); open my $fh, ">:encoding(utf8)", $output_file or die $!; my $csv = Text::CSV->new ( { binary => 1, sep_char => ' '} ); for my $code ( @airports ) { my $page = "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; my $html = get( $page ); my @data = $html =~ />(.*)<\/FONT/; $csv->print( $fh => [ split( ' ', $data[0] ) ] ); #$fh =~ s/\n+/\n/g; print $fh "\n" } close $fh; From eagud.q a tv3.cat Sat Aug 24 11:02:55 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Sat, 24 Aug 2013 20:02:55 +0200 Subject: [bcn-pm] RS: RS: consulta per eliminar linies en blanc References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> <101279E56795E74AA9167144EDE340A60486FDE1@LLOBREGAT.ad-ccrtv.local> Message-ID: <101279E56795E74AA9167144EDE340A60486FDE2@LLOBREGAT.ad-ccrtv.local> Hola una altra vegada, si ho faig per consola, si que elimina les linies blanques, perl -i.bak -n -e "print if /\S/" metar_brut.csv però dins l'script, he afegit, print $fh "\n" if/\S/ ; Elimina totes les linies blanques, pero la resta les ajunta i no fa un salt de linea... Enric -----Missatge original----- De: Barcelona-pm en nom de Agud Pique, Enric Enviat el: ds. 24/08/2013 19:32 Per a: Barcelona Perl Mongers; Barcelona Perl Mongers Tema: [bcn-pm] RS: consulta per eliminar linies en blanc Hola companys, Al final prefereixo posar el codis dels metars dins l'script pq en tinc uns quants... Dubte: algunes consultes tornen sense dades, i aleshores les lines corresponents queden blanques. Necessito eliminar aquestes linies blanques, exemple, LFPO 241700Z 30011KT 270V330 9999 SCT030 BKN090 20/12 Q1012 NOSIG LFQQ 241700Z 23007KT 7000 -RA BKN013 BKN140 17/16 Q1010 TEMPO 3000 RA BKN007 LFRB 241700Z 31007KT 260V330 9999 BKN030 BKN230 17/10 Q1019 NOSIG LFRC 241700Z AUTO 27016KT 9999 OVC034 16/11 Q1015 LFRD 241700Z AUTO 30017KT 9999 SCT032 BKN042 17/09 Q1017 LFRK 241700Z AUTO 30013KT 9999 SCT029 BKN060 OVC072 18/12 Q1014 LFRN 241700Z AUTO 32013KT 9999 NSC 18/08 Q1017 LFRS 241700Z 28010KT 240V320 9999 FEW046 BKN250 19/10 Q1017 NOSIG LFRQ 241700Z AUTO 31015KT 9999 FEW032 BKN038 17/11 Q1019 LFRV 241700Z AUTO 31010KT 9999 NSC 18/08 Q1018 LFSD 241700Z AUTO 19005KT 130V220 9999 //////CB 21/17 Q1012 He probat d'eliminar-les afegint al codi aquesta comanda $fh =~ s/\n+/\n/g; però no he tingut èxit. Potser he d'afegir alguna propietat del paquet TEXT::CSV per eliminar-les? Moltes gràcies per l'ajuda, espero que algu em pugui respondre, Salutacions Enric #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; chdir('/home/enric/csv'); my $output_file = 'metar_brut.csv'; my @airports = qw( LFBD LFBF LFBH LFBL LFBO LFBZ LFKJ LFLL LFLS LFLS LFMD LFME LFMH LFMK LFML LFMN LFMO LFMP LFMU LFOH LFOP LFPB LFPG LFPO LFPW LFQQ LFRB LFRC LFRD LFRK LFRN LFRS LFRQ LFRV LFSA LFSD LFSF LFSN LFSR LFST LFTW EHAM EHEH EHGG EHRD EICK EIDW EINN ); open my $fh, ">:encoding(utf8)", $output_file or die $!; my $csv = Text::CSV->new ( { binary => 1, sep_char => ' '} ); for my $code ( @airports ) { my $page = "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; my $html = get( $page ); my @data = $html =~ />(.*)<\/FONT/; $csv->print( $fh => [ split( ' ', $data[0] ) ] ); #$fh =~ s/\n+/\n/g; print $fh "\n" } close $fh; _______________________________________________ llista dels Barcelona-pm Barcelona-pm a pm.org http://mail.pm.org/mailman/listinfo/barcelona-pm BCN Perl Mongers: http://barcelona.pm.org From jluis a escomposlinux.org Sat Aug 24 13:45:07 2013 From: jluis a escomposlinux.org (jluis a escomposlinux.org) Date: Sat, 24 Aug 2013 22:45:07 +0200 Subject: [bcn-pm] Reunio d'agost Message-ID: He arribat avui a Barcelona i veig que no hi ha xarrada. Suposo que farem la reunió al "mes Open Bar". Donaré l'alta al lanyrd i començaré les piulades quan algú confirmi el lloc o el dilluns. -- From jluis a escomposlinux.org Sat Aug 24 14:30:46 2013 From: jluis a escomposlinux.org (jluis a escomposlinux.org) Date: Sat, 24 Aug 2013 23:30:46 +0200 Subject: [bcn-pm] RS: consulta per eliminar linies en blanc In-Reply-To: <101279E56795E74AA9167144EDE340A60486FDE1@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A605DB2C80@LLOBREGAT.ad-ccrtv.local><20130819093934.GA7730@etsetb.upc.edu><101279E56795E74AA9167144EDE340A60486FDDB@LLOBREGAT.ad-ccrtv.local><101279E56795E74AA9167144EDE340A605DB2CA8@LLOBREGAT.ad-ccrtv.local> <101279E56795E74AA9167144EDE340A60486FDE1@LLOBREGAT.ad-ccrtv.local> Message-ID: <0b19e6bd4189a554ef9b167696937446.squirrel@webmail.escomposlinux.org> > Hola companys, Benvingut al grup Enric, > Al final prefereixo posar el codis dels metars dins l'script pq en tinc > uns quants... > > Dubte: algunes consultes tornen sense dades, i aleshores les lines > corresponents queden blanques. Necessito eliminar aquestes linies > blanques, exemple, >.... > > He probat d'eliminar-les afegint al codi aquesta comanda $fh =~ > s/\n+/\n/g; però no he tingut èxit. Potser he d'afegir alguna propietat > del paquet TEXT::CSV per eliminar-les? Em sembla que has tingut un error de concepte $fh es el identificador de fitxer i l'expresio de sustitució no fa res. Ficare la meva soluncio i alguns comentaris al codi que has enviat #!/usr/bin/env perl use strict; use v5.10; use LWP::Simple; use Text::CSV; chdir('/home/enric/csv'); # si el script ha de servir per qualsevol usuari # chdir( "$ENV{HOME}/csv"); my $output_file = 'metar_brut.csv'; my @airports = qw( LFBD LFBF LFBH LFBL LFBO LFBZ LFKJ LFLL LFLS LFLS FMD LFME LFMH LFMK LFML LFMN LFMO LFMP LFMU LFOH LFOP LFPB LFPG LFPO LFPW LFQQ LFRB LFRC LFRD LFRK LFRN LFRS LFRQ LFRV LFSA LFSD LFSF LFSN LFSR LFST > LFTW EHAM EHEH EHGG EHRD EICK EIDW EINN ); > > > open my $fh, ">:encoding(utf8)", $output_file or die $!; > my $csv = Text::CSV->new ( { binary => 1, sep_char => ' '} ); > > for my $code ( @airports ) { > my $page = > "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; > my $html = get( $page ); > my @data = $html =~ />(.*)<\/FONT/; > $csv->print( $fh => [ split( ' ', $data[0] ) ] ); > #$fh =~ s/\n+/\n/g; > print $fh "\n" > } > > close $fh; > > > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org From jluis a escomposlinux.org Sat Aug 24 14:55:56 2013 From: jluis a escomposlinux.org (jluis a escomposlinux.org) Date: Sat, 24 Aug 2013 23:55:56 +0200 Subject: [bcn-pm] RS: RS: consulta per eliminar linies en blanc Message-ID: Hola Enric, Perdona si soc breu estic adormit. El problema es que apliques l'expressió regula al identificador de fitxer. una solucio es fer : print $fh "\n" if $data[0] #si hi han dades salt de línea Ara comento el codi > #!/usr/bin/env perl > use strict; > use v5.10; > use LWP::Simple; > use Text::CSV; > chdir('/home/enric/csv'); seria millor fer servir el hash %ENV chdir("$ENV{HOME}/csv"); > my $output_file = 'metar_brut.csv'; > my @airports = qw( LFBD LFBF LFBH LFBL LFBO LFBZ LFKJ LFLL LFLS LFLS LFMD LFME LFMH LFMK LFML LFMN LFMO LFMP LFMU LFOH LFOP LFPB LFPG LFPO LFPW > LFQQ LFRB LFRC LFRD LFRK LFRN LFRS LFRQ LFRV LFSA LFSD LFSF LFSN LFSR LFST > LFTW EHAM EHEH EHGG EHRD EICK EIDW EINN ); > open my $fh, ">:encoding(utf8)", $output_file or die $!; > my $csv = Text::CSV->new ( { binary => 1, sep_char => ' '} ); > for my $code ( @airports ) { > my $page = > "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; > my $html = get( $page ); > my @data = $html =~ />(.*)<\/FONT/; > $csv->print( $fh => [ split( ' ', $data[0] ) ] ); ^ jo ficaria la coma normal es mes llegible > #$fh =~ s/\n+/\n/g; aquesta línia no faria res $fh es un nombre (reference) > print $fh "\n" print $fh "\n" if $data[0] > } > close $fh; From eagud.q a tv3.cat Sun Aug 25 00:52:46 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Sun, 25 Aug 2013 09:52:46 +0200 Subject: [bcn-pm] RS: RS: RS: consulta per eliminar linies en blanc References: Message-ID: <101279E56795E74AA9167144EDE340A60486FDE7@LLOBREGAT.ad-ccrtv.local> Moltes gràcies, merci pel comentari del hash %ENV, ho desconeixia...ara han desaparegut les linies en blanc amb print $fh "\n" if $data[0] Enric Bon diumenge -----Missatge original----- De: Barcelona-pm en nom de jluis a escomposlinux.org Enviat el: ds. 24/08/2013 23:55 Per a: Barcelona Perl Mongers Tema: Re: [bcn-pm] RS: RS: consulta per eliminar linies en blanc Hola Enric, Perdona si soc breu estic adormit. El problema es que apliques l'expressió regula al identificador de fitxer. una solucio es fer : print $fh "\n" if $data[0] #si hi han dades salt de línea Ara comento el codi > #!/usr/bin/env perl > use strict; > use v5.10; > use LWP::Simple; > use Text::CSV; > chdir('/home/enric/csv'); seria millor fer servir el hash %ENV chdir("$ENV{HOME}/csv"); > my $output_file = 'metar_brut.csv'; > my @airports = qw( LFBD LFBF LFBH LFBL LFBO LFBZ LFKJ LFLL LFLS LFLS LFMD LFME LFMH LFMK LFML LFMN LFMO LFMP LFMU LFOH LFOP LFPB LFPG LFPO LFPW > LFQQ LFRB LFRC LFRD LFRK LFRN LFRS LFRQ LFRV LFSA LFSD LFSF LFSN LFSR LFST > LFTW EHAM EHEH EHGG EHRD EICK EIDW EINN ); > open my $fh, ">:encoding(utf8)", $output_file or die $!; > my $csv = Text::CSV->new ( { binary => 1, sep_char => ' '} ); > for my $code ( @airports ) { > my $page = > "http://aviationweather.gov/adds/metars/?station_ids=$code&std_trans=standard&chk_metars=on&hoursStr=most+recent+only&submitmet=Submit"; > my $html = get( $page ); > my @data = $html =~ />(.*)<\/FONT/; > $csv->print( $fh => [ split( ' ', $data[0] ) ] ); ^ jo ficaria la coma normal es mes llegible > #$fh =~ s/\n+/\n/g; aquesta línia no faria res $fh es un nombre (reference) > print $fh "\n" print $fh "\n" if $data[0] > } > close $fh; _______________________________________________ llista dels Barcelona-pm Barcelona-pm a pm.org http://mail.pm.org/mailman/listinfo/barcelona-pm BCN Perl Mongers: http://barcelona.pm.org From jluis a escomposlinux.org Sun Aug 25 04:23:52 2013 From: jluis a escomposlinux.org (jluis a escomposlinux.org) Date: Sun, 25 Aug 2013 13:23:52 +0200 Subject: [bcn-pm] RS: RS: RS: consulta per eliminar linies en blanc In-Reply-To: <101279E56795E74AA9167144EDE340A60486FDE7@LLOBREGAT.ad-ccrtv.local> References: <101279E56795E74AA9167144EDE340A60486FDE7@LLOBREGAT.ad-ccrtv.local> Message-ID: <1604064ca454778efa7545b1d6234f49.squirrel@webmail.escomposlinux.org> > Moltes gràcies, De res. Ahir era fos pero volia que la gent opines sobre la reunió d'agost i no m'agradava deixar la teva consulta sense resposta. > merci pel comentari del hash %ENV, ho desconeixia...ara han desaparegut > les linies en blanc amb print $fh "\n" if $data[0] Amb les opcions que passes a Text:CSV el que tens a $data[0] es el mateix que escrius a $fh amb $csv->print, i com '','0',0 son false el codi pot fallar si 0 es una resposta valida en METAR. he fet una cerca a metacpan https://metacpan.org/search?q=metar i surten mòduls que et podrien interessar : https://metacpan.org/module/Geo::WeatherNWS https://metacpan.org/module/Geo::TAF https://metacpan.org/module/Geo::METAR Prova cercar a metacpan amb weather pots trobar mòduls per extreure dades de dispositius i diferents pagines web. From marc.egea.sala a gmail.com Sun Aug 25 05:40:37 2013 From: marc.egea.sala a gmail.com (Marc Egea i Sala) Date: Sun, 25 Aug 2013 14:40:37 +0200 Subject: [bcn-pm] Reunio d'agost In-Reply-To: References: Message-ID: L'última la vam fer a Capside perquè en Miquel ho va oferir ja que teníem presentació. Algú té algun tema per presentar? Encara que sigui així, crec que al bar tenim lloc de sobra, i de totes maneres sempre acabem volent prendre alguna cosa... El dia 24 d’agost de 2013 22.45, ha escrit: > He arribat avui a Barcelona i veig que no hi ha xarrada. > Suposo que farem la reunió al "mes Open Bar". > > Donaré l'alta al lanyrd i començaré les piulades quan algú confirmi el > lloc o el dilluns. > > > -- > > > > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From eagud.q a tv3.cat Tue Aug 27 01:11:14 2013 From: eagud.q a tv3.cat (Agud Pique, Enric) Date: Tue, 27 Aug 2013 10:11:14 +0200 Subject: [bcn-pm] RS: RS: RS: consulta per eliminar linies en blanc In-Reply-To: <1604064ca454778efa7545b1d6234f49.squirrel@webmail.escomposlinux.org> References: <101279E56795E74AA9167144EDE340A60486FDE7@LLOBREGAT.ad-ccrtv.local> <1604064ca454778efa7545b1d6234f49.squirrel@webmail.escomposlinux.org> Message-ID: Moltes gracies! Aquests moduls son ben interessants!!! Enric Enviat des del meu iPhone El 25/08/2013, a les 13:24, "jluis a escomposlinux.org" va escriure: >> Moltes gràcies, > > De res. > > Ahir era fos pero volia que la gent opines sobre la reunió d'agost i no > m'agradava deixar la teva consulta sense resposta. > >> merci pel comentari del hash %ENV, ho desconeixia...ara han desaparegut >> les linies en blanc amb print $fh "\n" if $data[0] > > Amb les opcions que passes a Text:CSV el que tens a $data[0] es el mateix > que escrius a $fh amb $csv->print, i com '','0',0 son false el codi pot > fallar si > 0 es una resposta valida en METAR. > > he fet una cerca a metacpan https://metacpan.org/search?q=metar > i surten mòduls que et podrien interessar : > > https://metacpan.org/module/Geo::WeatherNWS > https://metacpan.org/module/Geo::TAF > https://metacpan.org/module/Geo::METAR > > Prova cercar a metacpan amb weather pots trobar mòduls per extreure dades > de dispositius i diferents pagines web. > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm a pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org From jluis a escomposlinux.org Wed Aug 28 01:48:06 2013 From: jluis a escomposlinux.org (Jose Luis Perez Diez) Date: Wed, 28 Aug 2013 10:48:06 +0200 Subject: [bcn-pm] =?utf-8?q?La_reuni=C3=B3_de_agost_ja_es_a_lanyrd_=28mard?= =?utf-8?q?ita_memoria=29?= Message-ID: <201308281048.10696.jluis@escomposlinux.org> Aquest dilluns vaig donar d'alta la reunió a lanyrd, a Barcelona.pm i vaig piular-la, 3 dies mes tard fa presencia a la llista :/ http://lanyrd.com/2013/agoust-barcelona-perl-mongers-social-meeting/ -------------- part següent -------------- Un document HTML ha estat eliminat... URL: From jluis a escomposlinux.org Fri Aug 30 02:33:30 2013 From: jluis a escomposlinux.org (Jose Luis Perez Diez) Date: Fri, 30 Aug 2013 11:33:30 +0200 Subject: [bcn-pm] Software Craftmansip Barcelona 2013 Message-ID: <201308301133.33647.jluis@escomposlinux.org> web del evento http://softwarecraftsmanshipbarcelona.org/ y web para proponer actividades http://scbcn.ideascale.com/ -------------- part següent -------------- Un document HTML ha estat eliminat... URL: