Re: [Rio-pm] print() on closed filehandle
Isso é que é sacar do assunto. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 18:45:15 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle um beijo pra vc também 2012/10/21 Stanislaw Pusep Assumindo que o MP3 tenha uma entropia próxima de 8 bits por byte (algo que definitivamente não vale para um arquivo .pl, por mais que nos caçoem), um arquivo de 6,16MB poderá ter cerca de 25 mil ocorrências de \x0A. Mapeando CR => CRLF, pode crescer em cerca de 50KB. Acho que 6,19MB está dentro da faixa :) ABS() 2012/10/21 Tiago Peczenyj mas isso nao explica o tamanho do video ser tão diferente... 2012/10/21 Stanislaw Pusep Você usa Windows, não?Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou então abrir o handle como open($fh, '>:raw', 'nome.mp3'). O erro acontece por que o Perl do Windows substitui byte \x0A pela sequencia \x0D\x0A em arquivos "texto". Em arquivo não-"texto", isso não é nada bom. ABS() 2012/10/21 Aureliano Guedes Não ainda, vou experimentar e volto com os resultados. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:54:30 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle então alguma coisa acontece durante o transporte ou o protocolo de transmissão. estou sem tempo de analisar mas vc experimento usar o wireshark? 2012/10/21 Aureliano Guedes MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. Em contrapartida o arquivo obtido pelo script fica com 6,19MB. Ja tentei baixar denovo, continua o mesmo problema. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:25:59 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio
Re: [Rio-pm] print() on closed filehandle
um beijo pra vc também 2012/10/21 Stanislaw Pusep > Assumindo que o MP3 tenha uma entropia próxima de 8 bits por byte (algo > que definitivamente não vale para um arquivo .pl, por mais que nos caçoem), > um arquivo de 6,16MB poderá ter cerca de 25 mil ocorrências de \x0A. > Mapeando CR => CRLF, pode crescer em cerca de 50KB. Acho que 6,19MB está > dentro da faixa :) > > ABS() > > > > > 2012/10/21 Tiago Peczenyj > >> mas isso nao explica o tamanho do video ser tão diferente... >> >> >> 2012/10/21 Stanislaw Pusep >> >>> Você usa Windows, não? >>> Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou >>> então abrir o handle como open($fh, '>:raw', 'nome.mp3'). >>> O erro acontece por que o Perl do Windows substitui byte \x0A pela >>> sequencia \x0D\x0A em arquivos "texto". >>> Em arquivo não-"texto", isso não é nada bom. >>> >>> ABS() >>> >>> >>> >>> >>> 2012/10/21 Aureliano Guedes >>> Não ainda, vou experimentar e volto com os resultados. -- From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:54:30 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle então alguma coisa acontece durante o transporte ou o protocolo de transmissão. estou sem tempo de analisar mas vc experimento usar o wireshark? 2012/10/21 Aureliano Guedes MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. Em contrapartida o arquivo obtido pelo script fica com 6,19MB. Ja tentei baixar denovo, continua o mesmo problema. -- From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:25:59 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? -- From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m;
Re: [Rio-pm] print() on closed filehandle
Assumindo que o MP3 tenha uma entropia próxima de 8 bits por byte (algo que definitivamente não vale para um arquivo .pl, por mais que nos caçoem), um arquivo de 6,16MB poderá ter cerca de 25 mil ocorrências de \x0A. Mapeando CR => CRLF, pode crescer em cerca de 50KB. Acho que 6,19MB está dentro da faixa :) ABS() 2012/10/21 Tiago Peczenyj > mas isso nao explica o tamanho do video ser tão diferente... > > > 2012/10/21 Stanislaw Pusep > >> Você usa Windows, não? >> Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou >> então abrir o handle como open($fh, '>:raw', 'nome.mp3'). >> O erro acontece por que o Perl do Windows substitui byte \x0A pela >> sequencia \x0D\x0A em arquivos "texto". >> Em arquivo não-"texto", isso não é nada bom. >> >> ABS() >> >> >> >> >> 2012/10/21 Aureliano Guedes >> >>> Não ainda, vou experimentar e volto com os resultados. >>> >>> -- >>> From: tiago.pecze...@gmail.com >>> Date: Sun, 21 Oct 2012 17:54:30 -0200 >>> >>> To: rio-pm@pm.org >>> Subject: Re: [Rio-pm] print() on closed filehandle >>> >>> então alguma coisa acontece durante o transporte ou o protocolo de >>> transmissão. estou sem tempo de analisar mas vc experimento usar o >>> wireshark? >>> >>> 2012/10/21 Aureliano Guedes >>> >>> MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original >>> pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. >>> Em contrapartida o arquivo obtido pelo script fica com 6,19MB. >>> >>> Ja tentei baixar denovo, continua o mesmo problema. >>> -- >>> From: tiago.pecze...@gmail.com >>> Date: Sun, 21 Oct 2012 17:25:59 -0200 >>> >>> To: rio-pm@pm.org >>> Subject: Re: [Rio-pm] print() on closed filehandle >>> >>> analise o arquivo original e o que vc esta salvando, vc pode ter >>> corrompido algum byte. se o md5 dos dois for igual o problema é outro, se >>> for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o >>> cabeçalho do mp3). >>> >>> 2012/10/21 Aureliano Guedes >>> >>> Realmente, um erro por falta de atenção. Agora deu certo. >>> >>> Contudo, os arquivos chegam com algum problema que não sei o que é. >>> >>> As musicas não tocam normalmente, elas ficam com um barulho estranho e >>> quase não da para reconhecer a musica, é como se estivesse acelerado. >>> >>> Será que é problemas calsado devido a forma que estou manipulando esse >>> tipo de arquivo? >>> >>> -- >>> From: tiago.pecze...@gmail.com >>> Date: Sun, 21 Oct 2012 16:57:12 -0200 >>> To: rio-pm@pm.org >>> Subject: Re: [Rio-pm] print() on closed filehandle >>> >>> >>> sem falar que esta usando open com 2 argumentos. tente usar com 3 >>> argumentos separando o modo de abrir do nome do arquivo com uma virgula ao >>> inves de um ponto para concatenar. alias vc pode interpolar assim >>> >>> open my $fh,">","$nome.mp3"; >>> >>> ou >>> >>> open my $fh,">","${nome}.mp3"; >>> >>> On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: >>> >>> espacos no nome do arquivo? (sempre, como letras acentuadas, >>> abominavel...) >>> 0le >>> Send via Android >>> On Oct 21, 2012 3:38 PM, "Aureliano Guedes" >>> wrote: >>> >>> Ola monges. >>> >>> Estou com problema para salvar arquivos *.mp3 recebidos via download. >>> >>> Ao salvar a mensagem retornada é 'print () on closed filehandle FH at >>> C:\User\AG\Desktop\mes.pl line 31.'. >>> >>> O sistema so retorna 'Invalid argument' quando uso o $!. >>> >>> Então usei o autodie para ver o que me retornava: >>> "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid >>> argument' C:\User\AG\Desktop\mes.pl line 19." >>> >>> Enfim, não estou entendendo o erro retornado. >>> >>> http://pastebin.com/qxCMLv1V >>> >>> #!/usr/bin/env perl >>> >>> use common::sense; >>> use WWW::Mechanize; >>> use autodie; >>> >>> >>> sub parse { >>> my ($self) = shift; >>> $self =~ s/\s+/\+/g; >>> chomp $self; >>> print "Now --> " . $self . "\n\n"; >>> return ("http://www.buscamp3.org/busca/"; . $self); >>> } >>> >>> sub gd { >>> my ($self, $name) = @_; >>> print $self . " == " . $name . "\n\n"; >>> open my $fh,">". $name . ".mp3"; >>> my $m = WWW::Mechanize->new(); >>> my $p = $m->get($self); >>> $p = $p->decoded_content; >>> $m->max_redirect(1); >>> my @Links = $m->links(); >>> my $w = 0; >>> SWU: foreach my $link(@Links){ >>> my @a = split ("/", $link->url()); >>> if ($a[1] =~ m/dl/gi){ >>> print "OK!\n"; >>> my $c = $m->get("http://www.buscamp3.org"; . $link->url()); >>> print $fh $c->decoded_content; >>> close $fh; >>> $w = 1; >>> } >>> last SWU if ($w == 1); >>> } >>> undef $m; >>> } >>> >>> >>> open IN, $ARGV[0] or die; >>> >>> foreach (){ >>> print "Search for: " . $_ . "\n"; >>> my $a = parse($_); >>> gd($a, $_); >>> print "\n\n"; >>> } >>> >>> ___
Re: [Rio-pm] print() on closed filehandle
Stanislaw, segui seu conselho e deu certo. MD5 e tamanho de arquivos ficaram iguais, e as musicas normais. Obrigado. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 18:21:37 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle mas isso nao explica o tamanho do video ser tão diferente... 2012/10/21 Stanislaw Pusep Você usa Windows, não?Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou então abrir o handle como open($fh, '>:raw', 'nome.mp3'). O erro acontece por que o Perl do Windows substitui byte \x0A pela sequencia \x0D\x0A em arquivos "texto". Em arquivo não-"texto", isso não é nada bom. ABS() 2012/10/21 Aureliano Guedes Não ainda, vou experimentar e volto com os resultados. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:54:30 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle então alguma coisa acontece durante o transporte ou o protocolo de transmissão. estou sem tempo de analisar mas vc experimento usar o wireshark? 2012/10/21 Aureliano Guedes MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. Em contrapartida o arquivo obtido pelo script fica com 6,19MB. Ja tentei baixar denovo, continua o mesmo problema. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:25:59 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___
Re: [Rio-pm] print() on closed filehandle
mas isso nao explica o tamanho do video ser tão diferente... 2012/10/21 Stanislaw Pusep > Você usa Windows, não? > Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou > então abrir o handle como open($fh, '>:raw', 'nome.mp3'). > O erro acontece por que o Perl do Windows substitui byte \x0A pela > sequencia \x0D\x0A em arquivos "texto". > Em arquivo não-"texto", isso não é nada bom. > > ABS() > > > > > 2012/10/21 Aureliano Guedes > >> Não ainda, vou experimentar e volto com os resultados. >> >> -- >> From: tiago.pecze...@gmail.com >> Date: Sun, 21 Oct 2012 17:54:30 -0200 >> >> To: rio-pm@pm.org >> Subject: Re: [Rio-pm] print() on closed filehandle >> >> então alguma coisa acontece durante o transporte ou o protocolo de >> transmissão. estou sem tempo de analisar mas vc experimento usar o >> wireshark? >> >> 2012/10/21 Aureliano Guedes >> >> MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original >> pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. >> Em contrapartida o arquivo obtido pelo script fica com 6,19MB. >> >> Ja tentei baixar denovo, continua o mesmo problema. >> -- >> From: tiago.pecze...@gmail.com >> Date: Sun, 21 Oct 2012 17:25:59 -0200 >> >> To: rio-pm@pm.org >> Subject: Re: [Rio-pm] print() on closed filehandle >> >> analise o arquivo original e o que vc esta salvando, vc pode ter >> corrompido algum byte. se o md5 dos dois for igual o problema é outro, se >> for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o >> cabeçalho do mp3). >> >> 2012/10/21 Aureliano Guedes >> >> Realmente, um erro por falta de atenção. Agora deu certo. >> >> Contudo, os arquivos chegam com algum problema que não sei o que é. >> >> As musicas não tocam normalmente, elas ficam com um barulho estranho e >> quase não da para reconhecer a musica, é como se estivesse acelerado. >> >> Será que é problemas calsado devido a forma que estou manipulando esse >> tipo de arquivo? >> >> -- >> From: tiago.pecze...@gmail.com >> Date: Sun, 21 Oct 2012 16:57:12 -0200 >> To: rio-pm@pm.org >> Subject: Re: [Rio-pm] print() on closed filehandle >> >> >> sem falar que esta usando open com 2 argumentos. tente usar com 3 >> argumentos separando o modo de abrir do nome do arquivo com uma virgula ao >> inves de um ponto para concatenar. alias vc pode interpolar assim >> >> open my $fh,">","$nome.mp3"; >> >> ou >> >> open my $fh,">","${nome}.mp3"; >> >> On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: >> >> espacos no nome do arquivo? (sempre, como letras acentuadas, >> abominavel...) >> 0le >> Send via Android >> On Oct 21, 2012 3:38 PM, "Aureliano Guedes" >> wrote: >> >> Ola monges. >> >> Estou com problema para salvar arquivos *.mp3 recebidos via download. >> >> Ao salvar a mensagem retornada é 'print () on closed filehandle FH at >> C:\User\AG\Desktop\mes.pl line 31.'. >> >> O sistema so retorna 'Invalid argument' quando uso o $!. >> >> Então usei o autodie para ver o que me retornava: >> "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid >> argument' C:\User\AG\Desktop\mes.pl line 19." >> >> Enfim, não estou entendendo o erro retornado. >> >> http://pastebin.com/qxCMLv1V >> >> #!/usr/bin/env perl >> >> use common::sense; >> use WWW::Mechanize; >> use autodie; >> >> >> sub parse { >> my ($self) = shift; >> $self =~ s/\s+/\+/g; >> chomp $self; >> print "Now --> " . $self . "\n\n"; >> return ("http://www.buscamp3.org/busca/"; . $self); >> } >> >> sub gd { >> my ($self, $name) = @_; >> print $self . " == " . $name . "\n\n"; >> open my $fh,">". $name . ".mp3"; >> my $m = WWW::Mechanize->new(); >> my $p = $m->get($self); >> $p = $p->decoded_content; >> $m->max_redirect(1); >> my @Links = $m->links(); >> my $w = 0; >> SWU: foreach my $link(@Links){ >> my @a = split ("/", $link->url()); >> if ($a[1] =~ m/dl/gi){ >> print "OK!\n"; >> my $c = $m->get("http://www.buscamp3.org"; . $link->url()); >> print $fh $c->decoded_content; >> close $fh; >> $w = 1; >> } >> last SWU if ($w == 1); >> } >> undef $m; >> } >> >> >> open IN, $ARGV[0] or die; >> >> foreach (){ >> print "Search for: " . $_ . "\n"; >> my $a = parse($_); >> gd($a, $_); >> print "\n\n"; >> } >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://pacman.blog.br >> >> ___ Rio-pm mailing list >> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> ___
Re: [Rio-pm] print() on closed filehandle
Você usa Windows, não? Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou então abrir o handle como open($fh, '>:raw', 'nome.mp3'). O erro acontece por que o Perl do Windows substitui byte \x0A pela sequencia \x0D\x0A em arquivos "texto". Em arquivo não-"texto", isso não é nada bom. ABS() 2012/10/21 Aureliano Guedes > Não ainda, vou experimentar e volto com os resultados. > > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 17:54:30 -0200 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > então alguma coisa acontece durante o transporte ou o protocolo de > transmissão. estou sem tempo de analisar mas vc experimento usar o > wireshark? > > 2012/10/21 Aureliano Guedes > > MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original > pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. > Em contrapartida o arquivo obtido pelo script fica com 6,19MB. > > Ja tentei baixar denovo, continua o mesmo problema. > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 17:25:59 -0200 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > analise o arquivo original e o que vc esta salvando, vc pode ter > corrompido algum byte. se o md5 dos dois for igual o problema é outro, se > for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o > cabeçalho do mp3). > > 2012/10/21 Aureliano Guedes > > Realmente, um erro por falta de atenção. Agora deu certo. > > Contudo, os arquivos chegam com algum problema que não sei o que é. > > As musicas não tocam normalmente, elas ficam com um barulho estranho e > quase não da para reconhecer a musica, é como se estivesse acelerado. > > Será que é problemas calsado devido a forma que estou manipulando esse > tipo de arquivo? > > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 16:57:12 -0200 > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > > sem falar que esta usando open com 2 argumentos. tente usar com 3 > argumentos separando o modo de abrir do nome do arquivo com uma virgula ao > inves de um ponto para concatenar. alias vc pode interpolar assim > > open my $fh,">","$nome.mp3"; > > ou > > open my $fh,">","${nome}.mp3"; > > On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: > > espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) > 0le > Send via Android > On Oct 21, 2012 3:38 PM, "Aureliano Guedes" > wrote: > > Ola monges. > > Estou com problema para salvar arquivos *.mp3 recebidos via download. > > Ao salvar a mensagem retornada é 'print () on closed filehandle FH at > C:\User\AG\Desktop\mes.pl line 31.'. > > O sistema so retorna 'Invalid argument' quando uso o $!. > > Então usei o autodie para ver o que me retornava: > "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid > argument' C:\User\AG\Desktop\mes.pl line 19." > > Enfim, não estou entendendo o erro retornado. > > http://pastebin.com/qxCMLv1V > > #!/usr/bin/env perl > > use common::sense; > use WWW::Mechanize; > use autodie; > > > sub parse { > my ($self) = shift; > $self =~ s/\s+/\+/g; > chomp $self; > print "Now --> " . $self . "\n\n"; > return ("http://www.buscamp3.org/busca/"; . $self); > } > > sub gd { > my ($self, $name) = @_; > print $self . " == " . $name . "\n\n"; > open my $fh,">". $name . ".mp3"; > my $m = WWW::Mechanize->new(); > my $p = $m->get($self); > $p = $p->decoded_content; > $m->max_redirect(1); > my @Links = $m->links(); > my $w = 0; > SWU: foreach my $link(@Links){ > my @a = split ("/", $link->url()); > if ($a[1] =~ m/dl/gi){ > print "OK!\n"; > my $c = $m->get("http://www.buscamp3.org"; . $link->url()); > print $fh $c->decoded_content; > close $fh; > $w = 1; > } > last SWU if ($w == 1); > } > undef $m; > } > > > open IN, $ARGV[0] or die; > > foreach (){ > print "Search for: " . $_ . "\n"; > my $a = parse($_); > gd($a, $_); > print "\n\n"; > } > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://pacman.blog.br > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://pacman.blog.br > > ___ Rio-pm mailing list > Rio-pm@pm.org http
Re: [Rio-pm] print() on closed filehandle
Não ainda, vou experimentar e volto com os resultados. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:54:30 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle então alguma coisa acontece durante o transporte ou o protocolo de transmissão. estou sem tempo de analisar mas vc experimento usar o wireshark? 2012/10/21 Aureliano Guedes MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. Em contrapartida o arquivo obtido pelo script fica com 6,19MB. Ja tentei baixar denovo, continua o mesmo problema. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:25:59 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm
Re: [Rio-pm] print() on closed filehandle
então alguma coisa acontece durante o transporte ou o protocolo de transmissão. estou sem tempo de analisar mas vc experimento usar o wireshark? 2012/10/21 Aureliano Guedes > MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original > pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. > Em contrapartida o arquivo obtido pelo script fica com 6,19MB. > > Ja tentei baixar denovo, continua o mesmo problema. > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 17:25:59 -0200 > > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > analise o arquivo original e o que vc esta salvando, vc pode ter > corrompido algum byte. se o md5 dos dois for igual o problema é outro, se > for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o > cabeçalho do mp3). > > 2012/10/21 Aureliano Guedes > > Realmente, um erro por falta de atenção. Agora deu certo. > > Contudo, os arquivos chegam com algum problema que não sei o que é. > > As musicas não tocam normalmente, elas ficam com um barulho estranho e > quase não da para reconhecer a musica, é como se estivesse acelerado. > > Será que é problemas calsado devido a forma que estou manipulando esse > tipo de arquivo? > > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 16:57:12 -0200 > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > > sem falar que esta usando open com 2 argumentos. tente usar com 3 > argumentos separando o modo de abrir do nome do arquivo com uma virgula ao > inves de um ponto para concatenar. alias vc pode interpolar assim > > open my $fh,">","$nome.mp3"; > > ou > > open my $fh,">","${nome}.mp3"; > > On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: > > espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) > 0le > Send via Android > On Oct 21, 2012 3:38 PM, "Aureliano Guedes" > wrote: > > Ola monges. > > Estou com problema para salvar arquivos *.mp3 recebidos via download. > > Ao salvar a mensagem retornada é 'print () on closed filehandle FH at > C:\User\AG\Desktop\mes.pl line 31.'. > > O sistema so retorna 'Invalid argument' quando uso o $!. > > Então usei o autodie para ver o que me retornava: > "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid > argument' C:\User\AG\Desktop\mes.pl line 19." > > Enfim, não estou entendendo o erro retornado. > > http://pastebin.com/qxCMLv1V > > #!/usr/bin/env perl > > use common::sense; > use WWW::Mechanize; > use autodie; > > > sub parse { > my ($self) = shift; > $self =~ s/\s+/\+/g; > chomp $self; > print "Now --> " . $self . "\n\n"; > return ("http://www.buscamp3.org/busca/"; . $self); > } > > sub gd { > my ($self, $name) = @_; > print $self . " == " . $name . "\n\n"; > open my $fh,">". $name . ".mp3"; > my $m = WWW::Mechanize->new(); > my $p = $m->get($self); > $p = $p->decoded_content; > $m->max_redirect(1); > my @Links = $m->links(); > my $w = 0; > SWU: foreach my $link(@Links){ > my @a = split ("/", $link->url()); > if ($a[1] =~ m/dl/gi){ > print "OK!\n"; > my $c = $m->get("http://www.buscamp3.org"; . $link->url()); > print $fh $c->decoded_content; > close $fh; > $w = 1; > } > last SWU if ($w == 1); > } > undef $m; > } > > > open IN, $ARGV[0] or die; > > foreach (){ > print "Search for: " . $_ . "\n"; > my $a = parse($_); > gd($a, $_); > print "\n\n"; > } > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://pacman.blog.br > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://pacman.blog.br > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] print() on closed filehandle
MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB. Em contrapartida o arquivo obtido pelo script fica com 6,19MB. Ja tentei baixar denovo, continua o mesmo problema. From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 17:25:59 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] print() on closed filehandle
analise o arquivo original e o que vc esta salvando, vc pode ter corrompido algum byte. se o md5 dos dois for igual o problema é outro, se for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o cabeçalho do mp3). 2012/10/21 Aureliano Guedes > Realmente, um erro por falta de atenção. Agora deu certo. > > Contudo, os arquivos chegam com algum problema que não sei o que é. > > As musicas não tocam normalmente, elas ficam com um barulho estranho e > quase não da para reconhecer a musica, é como se estivesse acelerado. > > Será que é problemas calsado devido a forma que estou manipulando esse > tipo de arquivo? > > -- > From: tiago.pecze...@gmail.com > Date: Sun, 21 Oct 2012 16:57:12 -0200 > To: rio-pm@pm.org > Subject: Re: [Rio-pm] print() on closed filehandle > > > sem falar que esta usando open com 2 argumentos. tente usar com 3 > argumentos separando o modo de abrir do nome do arquivo com uma virgula ao > inves de um ponto para concatenar. alias vc pode interpolar assim > > open my $fh,">","$nome.mp3"; > > ou > > open my $fh,">","${nome}.mp3"; > > On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: > > espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) > 0le > Send via Android > On Oct 21, 2012 3:38 PM, "Aureliano Guedes" > wrote: > > Ola monges. > > Estou com problema para salvar arquivos *.mp3 recebidos via download. > > Ao salvar a mensagem retornada é 'print () on closed filehandle FH at > C:\User\AG\Desktop\mes.pl line 31.'. > > O sistema so retorna 'Invalid argument' quando uso o $!. > > Então usei o autodie para ver o que me retornava: > "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid > argument' C:\User\AG\Desktop\mes.pl line 19." > > Enfim, não estou entendendo o erro retornado. > > http://pastebin.com/qxCMLv1V > > #!/usr/bin/env perl > > use common::sense; > use WWW::Mechanize; > use autodie; > > > sub parse { > my ($self) = shift; > $self =~ s/\s+/\+/g; > chomp $self; > print "Now --> " . $self . "\n\n"; > return ("http://www.buscamp3.org/busca/"; . $self); > } > > sub gd { > my ($self, $name) = @_; > print $self . " == " . $name . "\n\n"; > open my $fh,">". $name . ".mp3"; > my $m = WWW::Mechanize->new(); > my $p = $m->get($self); > $p = $p->decoded_content; > $m->max_redirect(1); > my @Links = $m->links(); > my $w = 0; > SWU: foreach my $link(@Links){ > my @a = split ("/", $link->url()); > if ($a[1] =~ m/dl/gi){ > print "OK!\n"; > my $c = $m->get("http://www.buscamp3.org"; . $link->url()); > print $fh $c->decoded_content; > close $fh; > $w = 1; > } > last SWU if ($w == 1); > } > undef $m; > } > > > open IN, $ARGV[0] or die; > > foreach (){ > print "Search for: " . $_ . "\n"; > my $a = parse($_); > gd($a, $_); > print "\n\n"; > } > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://pacman.blog.br > > ___ Rio-pm mailing list > Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] print() on closed filehandle
Realmente, um erro por falta de atenção. Agora deu certo. Contudo, os arquivos chegam com algum problema que não sei o que é. As musicas não tocam normalmente, elas ficam com um barulho estranho e quase não da para reconhecer a musica, é como se estivesse acelerado. Será que é problemas calsado devido a forma que estou manipulando esse tipo de arquivo? From: tiago.pecze...@gmail.com Date: Sun, 21 Oct 2012 16:57:12 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] print() on closed filehandle sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] print() on closed filehandle
sem falar que esta usando open com 2 argumentos. tente usar com 3 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao inves de um ponto para concatenar. alias vc pode interpolar assim open my $fh,">","$nome.mp3"; ou open my $fh,">","${nome}.mp3"; On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith wrote: > espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) > > 0le > > Send via Android > On Oct 21, 2012 3:38 PM, "Aureliano Guedes" > wrote: > >> Ola monges. >> >> Estou com problema para salvar arquivos *.mp3 recebidos via download. >> >> Ao salvar a mensagem retornada é 'print () on closed filehandle FH at >> C:\User\AG\Desktop\mes.pl line 31.'. >> >> O sistema so retorna 'Invalid argument' quando uso o $!. >> >> Então usei o autodie para ver o que me retornava: >> "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid >> argument' C:\User\AG\Desktop\mes.pl line 19." >> >> Enfim, não estou entendendo o erro retornado. >> >> http://pastebin.com/qxCMLv1V >> >> #!/usr/bin/env perl >> >> use common::sense; >> use WWW::Mechanize; >> use autodie; >> >> >> sub parse { >> my ($self) = shift; >> $self =~ s/\s+/\+/g; >> chomp $self; >> print "Now --> " . $self . "\n\n"; >> return ("http://www.buscamp3.org/busca/"; . $self); >> } >> >> sub gd { >> my ($self, $name) = @_; >> print $self . " == " . $name . "\n\n"; >> open my $fh,">". $name . ".mp3"; >> my $m = WWW::Mechanize->new(); >> my $p = $m->get($self); >> $p = $p->decoded_content; >> $m->max_redirect(1); >> my @Links = $m->links(); >> my $w = 0; >> SWU: foreach my $link(@Links){ >> my @a = split ("/", $link->url()); >> if ($a[1] =~ m/dl/gi){ >> print "OK!\n"; >> my $c = $m->get("http://www.buscamp3.org"; . $link->url()); >> print $fh $c->decoded_content; >> close $fh; >> $w = 1; >> } >> last SWU if ($w == 1); >> } >> undef $m; >> } >> >> >> open IN, $ARGV[0] or die; >> >> foreach (){ >> print "Search for: " . $_ . "\n"; >> my $a = parse($_); >> gd($a, $_); >> print "\n\n"; >> } >> >> ___ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] print() on closed filehandle
espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...) 0le Send via Android On Oct 21, 2012 3:38 PM, "Aureliano Guedes" wrote: > Ola monges. > > Estou com problema para salvar arquivos *.mp3 recebidos via download. > > Ao salvar a mensagem retornada é 'print () on closed filehandle FH at > C:\User\AG\Desktop\mes.pl line 31.'. > > O sistema so retorna 'Invalid argument' quando uso o $!. > > Então usei o autodie para ver o que me retornava: > "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid > argument' C:\User\AG\Desktop\mes.pl line 19." > > Enfim, não estou entendendo o erro retornado. > > http://pastebin.com/qxCMLv1V > > #!/usr/bin/env perl > > use common::sense; > use WWW::Mechanize; > use autodie; > > > sub parse { > my ($self) = shift; > $self =~ s/\s+/\+/g; > chomp $self; > print "Now --> " . $self . "\n\n"; > return ("http://www.buscamp3.org/busca/"; . $self); > } > > sub gd { > my ($self, $name) = @_; > print $self . " == " . $name . "\n\n"; > open my $fh,">". $name . ".mp3"; > my $m = WWW::Mechanize->new(); > my $p = $m->get($self); > $p = $p->decoded_content; > $m->max_redirect(1); > my @Links = $m->links(); > my $w = 0; > SWU: foreach my $link(@Links){ > my @a = split ("/", $link->url()); > if ($a[1] =~ m/dl/gi){ > print "OK!\n"; > my $c = $m->get("http://www.buscamp3.org"; . $link->url()); > print $fh $c->decoded_content; > close $fh; > $w = 1; > } > last SWU if ($w == 1); > } > undef $m; > } > > > open IN, $ARGV[0] or die; > > foreach (){ > print "Search for: " . $_ . "\n"; > my $a = parse($_); > gd($a, $_); > print "\n\n"; > } > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] print() on closed filehandle
Ola monges. Estou com problema para salvar arquivos *.mp3 recebidos via download. Ao salvar a mensagem retornada é 'print () on closed filehandle FH at C:\User\AG\Desktop\mes.pl line 31.'. O sistema so retorna 'Invalid argument' quando uso o $!. Então usei o autodie para ver o que me retornava: "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid argument' C:\User\AG\Desktop\mes.pl line 19." Enfim, não estou entendendo o erro retornado. http://pastebin.com/qxCMLv1V #!/usr/bin/env perl use common::sense; use WWW::Mechanize; use autodie; sub parse { my ($self) = shift; $self =~ s/\s+/\+/g; chomp $self; print "Now --> " . $self . "\n\n"; return ("http://www.buscamp3.org/busca/"; . $self); } sub gd { my ($self, $name) = @_; print $self . " == " . $name . "\n\n"; open my $fh,">". $name . ".mp3"; my $m = WWW::Mechanize->new(); my $p = $m->get($self); $p = $p->decoded_content; $m->max_redirect(1); my @Links = $m->links(); my $w = 0; SWU: foreach my $link(@Links){ my @a = split ("/", $link->url()); if ($a[1] =~ m/dl/gi){ print "OK!\n"; my $c = $m->get("http://www.buscamp3.org"; . $link->url()); print $fh $c->decoded_content; close $fh; $w = 1; } last SWU if ($w == 1); } undef $m; } open IN, $ARGV[0] or die; foreach (){ print "Search for: " . $_ . "\n"; my $a = parse($_); gd($a, $_); print "\n\n"; } ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] HTML::Parse
Desculpa o flood esqueci do link -> http://pastebin.com/fgYhBrsp From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sun, 21 Oct 2012 16:10:16 + Subject: Re: [Rio-pm] HTML::Parse Bom, eu consegui completar o script. Ainda devo fazer algumas alterações. So um problema, se alguem puder testar vejam que apesar de baixar o arquivo ele vem meio que acelerado, estranho. Ainda para listas com mais de uma musica volta essa msg: plrint() on closed filehandle OUT at C:\User\AG\Desktop\mes.pl line 47. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sun, 21 Oct 2012 14:48:19 + Subject: Re: [Rio-pm] HTML::Parse Ola. Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma coisa. Eu tenho um botão: Como eu faço para clicar nele usando o metodo click_button? Como faço para setar esse botão? Eu tentei: $m->click_button(value=>/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3); Mas não da certo. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 17:28:46 + Subject: Re: [Rio-pm] HTML::Parse Opa, Bruno, obrigado pela resposta sua e de todos os outros que estão me ajudando. Irei tentar seguir o que me falaram e depois darei um feedback dos resultados. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 13:44:45 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Então provavelmente eles estão verificando pelo referer no header do request HTTP [1]. Não sei como funciona o LWP::Simple, mas com o LWP::UserAgent você consegue setar parametros pro header a ser enviado. No caso você deveria setar o referer para 'http://www.buscamp3.org/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html'. Outra opção talvez seja usar o WWW::Mechanize, acho que ele faz isso automaticamente para você, se você utilizar as funções de "navegação" dele. No mais, deixe-me discordar da seguinte frase que você escreveu anteriormente (sobre XPath e seletores CSS): "Nesse caso não é pra mim, não retenho esses conhecimentos." Se você não conhece XPath e/ou seletores CSS, você deveria procurar dar uma olhada/estudada breve neles se isso for necessário para resolver um problema seu. É uma mentalidade melhor do que assumir que você não sabe, nem vai apreender e por isso limitar o seu leque de opções para fazer o que você quer ;) [ ]'s [1] https://en.wikipedia.org/wiki/HTTP_referer 2012/10/20 Aureliano Guedes Pois é Bruno, aqui tambem da erro, mas se eu entrar nessa pagina http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/ e clicar no link o download inicia, e aparentemente é esse o link, a não ser que esse link que eu esteja pegando da pagina esteja errado é o link de download seja outro. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 12:39:02 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Você consegue fazer o download desse arquivo manualmente, colando o endereço no seu próprio browser?Aqui esse link da erro... [ ]'s 2012/10/20 Aureliano Guedes Eu tinha chegado nesses links do mp3, o problema é que fazer o download deles não funciona. No caso: use LWP::Simple; my @url = get ('www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3'); open OUT,">". 'abcde.mp3'; print OUT $_ foreach (@url); Obtive um arquivo vazio. Oque pode ser?? From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 15:25:29 + Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. Nesse caso não é pra mim, não retenho esses conmhecimentos. From: creakt...@gmail.com Date: Sat, 20 Oct 2012 00:13:10 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. No caso do link que você passou, URL do primeiro MP3 pode ser obtida via XPath: //table[@class='linhas_lista'][1]//tr/td[2]/a/@href De onde tirei isso? De uma extensão pro Chrome, chamada XPath Helper: https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl Firefox tem (tinha?) um tal do XPather: https://addons.mozilla.org/en-US/firefox/addon/xpather/ Provando o que o Marcio disse: stas@Stanislaws-MacBook-Pro:~$ perl -CADS -MDDP -MURI -MWeb::Scraper -e 'p scraper{process q(//h1/strong),title=>q(text);process q(//a[@href=~/\.mp3$/]),q(url[])=>q(@href)}->scrape((URI->new(q(http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/))) x 2)' Printing in line 1 of -e:\ {title "Baixar Thaeme e Thiago - Ai que do/ grátis",url [[0] http://www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [1] http://www.buscamp3.org/dl/3473674c78687936326f/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [2] http://www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [3] http://www.buscamp3.org/dl/3473
Re: [Rio-pm] HTML::Parse
Bom, eu consegui completar o script. Ainda devo fazer algumas alterações. So um problema, se alguem puder testar vejam que apesar de baixar o arquivo ele vem meio que acelerado, estranho. Ainda para listas com mais de uma musica volta essa msg: plrint() on closed filehandle OUT at C:\User\AG\Desktop\mes.pl line 47. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sun, 21 Oct 2012 14:48:19 + Subject: Re: [Rio-pm] HTML::Parse Ola. Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma coisa. Eu tenho um botão: Como eu faço para clicar nele usando o metodo click_button? Como faço para setar esse botão? Eu tentei: $m->click_button(value=>/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3); Mas não da certo. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 17:28:46 + Subject: Re: [Rio-pm] HTML::Parse Opa, Bruno, obrigado pela resposta sua e de todos os outros que estão me ajudando. Irei tentar seguir o que me falaram e depois darei um feedback dos resultados. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 13:44:45 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Então provavelmente eles estão verificando pelo referer no header do request HTTP [1]. Não sei como funciona o LWP::Simple, mas com o LWP::UserAgent você consegue setar parametros pro header a ser enviado. No caso você deveria setar o referer para 'http://www.buscamp3.org/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html'. Outra opção talvez seja usar o WWW::Mechanize, acho que ele faz isso automaticamente para você, se você utilizar as funções de "navegação" dele. No mais, deixe-me discordar da seguinte frase que você escreveu anteriormente (sobre XPath e seletores CSS): "Nesse caso não é pra mim, não retenho esses conhecimentos." Se você não conhece XPath e/ou seletores CSS, você deveria procurar dar uma olhada/estudada breve neles se isso for necessário para resolver um problema seu. É uma mentalidade melhor do que assumir que você não sabe, nem vai apreender e por isso limitar o seu leque de opções para fazer o que você quer ;) [ ]'s [1] https://en.wikipedia.org/wiki/HTTP_referer 2012/10/20 Aureliano Guedes Pois é Bruno, aqui tambem da erro, mas se eu entrar nessa pagina http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/ e clicar no link o download inicia, e aparentemente é esse o link, a não ser que esse link que eu esteja pegando da pagina esteja errado é o link de download seja outro. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 12:39:02 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Você consegue fazer o download desse arquivo manualmente, colando o endereço no seu próprio browser?Aqui esse link da erro... [ ]'s 2012/10/20 Aureliano Guedes Eu tinha chegado nesses links do mp3, o problema é que fazer o download deles não funciona. No caso: use LWP::Simple; my @url = get ('www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3'); open OUT,">". 'abcde.mp3'; print OUT $_ foreach (@url); Obtive um arquivo vazio. Oque pode ser?? From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 15:25:29 + Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. Nesse caso não é pra mim, não retenho esses conmhecimentos. From: creakt...@gmail.com Date: Sat, 20 Oct 2012 00:13:10 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. No caso do link que você passou, URL do primeiro MP3 pode ser obtida via XPath: //table[@class='linhas_lista'][1]//tr/td[2]/a/@href De onde tirei isso? De uma extensão pro Chrome, chamada XPath Helper: https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl Firefox tem (tinha?) um tal do XPather: https://addons.mozilla.org/en-US/firefox/addon/xpather/ Provando o que o Marcio disse: stas@Stanislaws-MacBook-Pro:~$ perl -CADS -MDDP -MURI -MWeb::Scraper -e 'p scraper{process q(//h1/strong),title=>q(text);process q(//a[@href=~/\.mp3$/]),q(url[])=>q(@href)}->scrape((URI->new(q(http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/))) x 2)' Printing in line 1 of -e:\ {title "Baixar Thaeme e Thiago - Ai que do/ grátis",url [[0] http://www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [1] http://www.buscamp3.org/dl/3473674c78687936326f/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [2] http://www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [3] http://www.buscamp3.org/dl/34734c6f727448494d71/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [4] http://www.buscamp3.org/dl/3473644e636d6f345245/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3 ]}
Re: [Rio-pm] HTML::Parse
Ola. Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma coisa. Eu tenho um botão: Como eu faço para clicar nele usando o metodo click_button? Como faço para setar esse botão? Eu tentei: $m->click_button(value=>/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3); Mas não da certo. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 17:28:46 + Subject: Re: [Rio-pm] HTML::Parse Opa, Bruno, obrigado pela resposta sua e de todos os outros que estão me ajudando. Irei tentar seguir o que me falaram e depois darei um feedback dos resultados. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 13:44:45 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Então provavelmente eles estão verificando pelo referer no header do request HTTP [1]. Não sei como funciona o LWP::Simple, mas com o LWP::UserAgent você consegue setar parametros pro header a ser enviado. No caso você deveria setar o referer para 'http://www.buscamp3.org/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html'. Outra opção talvez seja usar o WWW::Mechanize, acho que ele faz isso automaticamente para você, se você utilizar as funções de "navegação" dele. No mais, deixe-me discordar da seguinte frase que você escreveu anteriormente (sobre XPath e seletores CSS): "Nesse caso não é pra mim, não retenho esses conhecimentos." Se você não conhece XPath e/ou seletores CSS, você deveria procurar dar uma olhada/estudada breve neles se isso for necessário para resolver um problema seu. É uma mentalidade melhor do que assumir que você não sabe, nem vai apreender e por isso limitar o seu leque de opções para fazer o que você quer ;) [ ]'s [1] https://en.wikipedia.org/wiki/HTTP_referer 2012/10/20 Aureliano Guedes Pois é Bruno, aqui tambem da erro, mas se eu entrar nessa pagina http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/ e clicar no link o download inicia, e aparentemente é esse o link, a não ser que esse link que eu esteja pegando da pagina esteja errado é o link de download seja outro. From: bruno.b...@gmail.com Date: Sat, 20 Oct 2012 12:39:02 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Você consegue fazer o download desse arquivo manualmente, colando o endereço no seu próprio browser?Aqui esse link da erro... [ ]'s 2012/10/20 Aureliano Guedes Eu tinha chegado nesses links do mp3, o problema é que fazer o download deles não funciona. No caso: use LWP::Simple; my @url = get ('www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3'); open OUT,">". 'abcde.mp3'; print OUT $_ foreach (@url); Obtive um arquivo vazio. Oque pode ser?? From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 20 Oct 2012 15:25:29 + Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. Nesse caso não é pra mim, não retenho esses conmhecimentos. From: creakt...@gmail.com Date: Sat, 20 Oct 2012 00:13:10 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] HTML::Parse Web::Scraper requer conhecimento de XPath e/ou seletores CSS. No caso do link que você passou, URL do primeiro MP3 pode ser obtida via XPath: //table[@class='linhas_lista'][1]//tr/td[2]/a/@href De onde tirei isso? De uma extensão pro Chrome, chamada XPath Helper: https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl Firefox tem (tinha?) um tal do XPather: https://addons.mozilla.org/en-US/firefox/addon/xpather/ Provando o que o Marcio disse: stas@Stanislaws-MacBook-Pro:~$ perl -CADS -MDDP -MURI -MWeb::Scraper -e 'p scraper{process q(//h1/strong),title=>q(text);process q(//a[@href=~/\.mp3$/]),q(url[])=>q(@href)}->scrape((URI->new(q(http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/))) x 2)' Printing in line 1 of -e:\ {title "Baixar Thaeme e Thiago - Ai que do/ grátis",url [[0] http://www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [1] http://www.buscamp3.org/dl/3473674c78687936326f/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [2] http://www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [3] http://www.buscamp3.org/dl/34734c6f727448494d71/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3, [4] http://www.buscamp3.org/dl/3473644e636d6f345245/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3 ]} Sem ser one-liner maldito: #!/usr/bin/env perluse common::sense;use Data::Printer;use URI;use Web::Scraper; my $url = URI->new('http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/'); p scraper { process q(//h1/strong),title => 'text';process q(//a[@href=~/\\.mp3$/]),'url[]' => '@href';}->scrape($url, $url); ABS() 2012/10/19 Aureliano Guedes Parece interessante mesmo, mas difici