Re: [Rio-pm] HTML::Parse

2012-10-27 Por tôpico Junior Moraes
Hi.

O meu é pra extrair o áudio de arquivos FLV. Não é diretamente relacionado
ao YouTube. :P

Enviado via mobile
Em 27/10/2012 00:19, Renato Santos renato.c...@gmail.com escreveu:

 Se não me engano esse módulo é do Junior Moraes
 Em 26/10/2012 22:14, Aureliano Guedes guedes_1...@hotmail.com
 escreveu:

  Vou estudar mais e ver se não começo por onde vocês estão me indicando.

 Por exemplo, sou acostumado usar ubuntu e slackware, mas meu note pifo e
 to usando o pc de mesa com windows 7, e comecei a ter problemas com
 download devido um problema tecnico ja explicado em outra tread pelo
 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 :) 

 Logo todo arquivo de audio e video chega com problema, usando esse modulo
 - https://metacpan.org/module/WWW::YouTube::Download

 Estou analizando a source dele com calma para ver se acho o erro, o
 problema que essa source esta complexa praq minha mente, mas começo achar
 que o problema esta em:

  my $res = $self-ua-get($video_url, ':content_cb' = $args-{cb});
 Carp::croak !! $video_id download failed: , $res-status_line if
 $res-is_error;

 Depois darei um feedback sobre se corrigi o erro.


 --
 From: tiago.pecze...@gmail.com
 Date: Fri, 26 Oct 2012 07:36:47 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 e o que te impede de fazer a sua versão? se vc pensar um pouco vc pode
 contribuir com algo bom e não uma copia de algo que ja exista. Outra coisa,
 o que existe la pode ser antigo, nesse caso vc pode ou tentar assumir
 aquele projeto ou lançar o seu baseado nos principios (oo, funcional,
 assincrono, etc) que vc acredita. se o modulo for ruim ninguem vai usar,
 simples assim.

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com

  Cara, eu acho o CPAN maravilhoso, mas as vezes é frustante você saber
 que está criando algo que ja existe.

 Valeu.


 --
 From: creakt...@gmail.com
 Date: Thu, 25 Oct 2012 22:33:46 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 ++breno!

 ABS()



 2012/10/25 breno br...@rio.pm.org

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
  Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más
 praticas,
  mandando reguex em xml e tals.
 
  Quero fazer de forma bonita com XPath e tals. Mas ainda estou em
 processo de
  entendet tudo isso.
 
  Estou tentando pegar o primeiro link da lista de videos de um resultado
 de
  pesquisa do YouTube.
  Para isso estou ultilizando uma API do YouTube:
 
 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos
 
  Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx
 

 Olha, fora tudo, posso te garantir que não há erros :)

 Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma
 busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz
 buscas e muito mais.

 https://metacpan.org/module/WebService::GData::YouTube#search_video

 O one-liner abaixo, por exemplo, exibe o título do primeiro
 resultado para uma busca no YouTube por perl:

 perl -MWebService::Gdata::YouTube -E 'my $yt =
 WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);
 say $_-title foreach @{ $yt-search_video() }'


 []s

 -b
 ___
 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 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


 ___
 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] HTML::Parse

2012-10-27 Por tôpico Alexei Znamensky
Aureliano,

Eu vi algo no seu código que não é um erro, e há controvérsias sobre ser
boa ou má prática, varia um pouco com gosto do freguês, mas que eu
pessoalmente gosto de fazer diferente. Acho que é um estilo melhor.

Ao invés de fazer (principalmente em loops), algo como:

for(...)
  if( deu certo )
faz um lance
  else #deu errado
mostra ou trata erro
  endif
endfor


Eu geralmente prefiro fazer assim


for(...)
  if( deu errado )
mostra ou trata erro
next# ou die, depdende de como voce quer lidar com o erro
  elseif( deu outro lance errado )
mostra ou trata
next
  ... # tantas quantas validações forem necessárias
  endif
  # parâmetros desta iteração estão validados

  faz um lance
endfor


Acho que dessa forma, você simplifica a leitura do código: 1) o que for
erro você trata logo, e depois que passa daquele bloco de validações está
ok e 2) visualmente faz até mais sentido: o código mais indentado no começo
é a exceção, enquanto que a regra está apenas um nível de indentação
depois do comando de loop.

my $two_cents;

Russo

2012/10/25 Aureliano Guedes guedes_1...@hotmail.com

  Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más
 praticas, mandando reguex em xml e tals.

 Quero fazer de forma bonita com XPath e tals. Mas ainda estou em processo
 de entendet tudo isso.

 Estou tentando pegar o primeiro link da lista de videos de um resultado de
 pesquisa do YouTube.
 Para isso estou ultilizando uma API do YouTube:
 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos

 Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx


 #!/usr/bin/env perl

 use common::sense;
 use WWW::Mechanize;
 use URI::Escape;
 use HTML::TreeBuilder::XPath;

 my $html = WWW::Mechanize-new(timeout=100);

 open IN, $ARGV[0] or die $!;

 foreach (IN){
 s/\s+/\+/g;
 chomp;
 my $url = 'https://gdata.youtube.com/feeds/api/videos?q=' .
 uri_escape($_);
 $html-get($url);
 if ($html-is_success){
 my $page = $html-content;
 $page =~ s/(\n\r|\r\n)|\r/\n/g;

 my $tree = HTML::TreeBuilder::XPath-new();

 my $node = $tree-findenodes('/html/body//a[@href=(.*)]')-[0];

 print $node;
 }
 else {
 print FAIL:  . $! . \n;
 }
 }



  Date: Thu, 25 Oct 2012 13:06:40 -0200
  From: br...@rio.pm.org

  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] HTML::Parse
 
  2012/10/21 Aureliano Guedes guedes_1...@hotmail.com
  
   Ola.
  
   Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma
 coisa.
   Eu tenho um botão:
  
   a
 href=/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3
 rel=nofollow title=Download Fernando E Sorocaba Tenso.mp3!
   img src=/images/download.jpg width=95 height=25 alt=Baixar
 Fernando E Sorocaba Tenso style=border:0 //a
  
  
   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.
  
 
  O seu botão não é um botão (button ou input type=button) e sim
  um link (a). O Mechanize sabiamente os diferencia, e você
  provavelmente está procurando o método follow_link()
 
  https://metacpan.org/module/WWW::Mechanize#mech-follow_link-...-
 
  Finalmente, se quiser aprender sobre XPath e Seletores CSS, recomendo
  os seguintes artigos:
 
  http://sao-paulo.pm.org/artigo/2010/utilizandoxpathparacriarwebspiders
 
 http://sao-paulo.pm.org/artigo/2011/ExtracaodedadoscomperlxpatheregexExportadoemODF
 
 http://sao-paulo.pm.org/artigo/2011/ScrapingfacilcomMojoliciousefeedsAtom
  (veja no final: guia de referência rápida para seletores CSS)
 
  ou ir direto na fonte:
 
  http://www.w3.org/TR/xpath/
  http://www.w3.org/TR/CSS2/selector.html
  http://www.w3.org/TR/css3-selectors/
 
  []s
 
  -b
  ___
  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




-- 
Alexei RUSSOZ Znamensky | russoz EM gmail com | http://russoz.org
GPG fingerprint = 42AB E78C B83A AE31 7D27  1CF3 C66F B5C7 71CA 9F3C
http://www.flickr.com/photos/alexeiz | http://github.com/russoz
I don't know... fly casual! -- Han Solo
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] HTML::Parse

2012-10-26 Por tôpico Aureliano Guedes

Vou estudar mais e ver se não começo por onde vocês estão me indicando. 

Por exemplo, sou acostumado usar ubuntu e slackware, mas meu note pifo e to 
usando o pc de mesa com windows 7, e comecei a ter problemas com download 
devido um problema tecnico ja explicado em outra tread pelo 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 :) 

Logo todo arquivo de audio e video chega com problema, usando esse modulo - 
https://metacpan.org/module/WWW::YouTube::Download

Estou analizando a source dele com calma para ver se acho o erro, o problema 
que essa source esta complexa praq minha mente, mas começo achar que o problema 
esta em:

 my $res = $self-ua-get($video_url, ':content_cb' = $args-{cb});
Carp::croak !! $video_id download failed: , $res-status_line if 
$res-is_error;

Depois darei um feedback sobre se corrigi o erro.


From: tiago.pecze...@gmail.com
Date: Fri, 26 Oct 2012 07:36:47 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

e o que te impede de fazer a sua versão? se vc pensar um pouco vc pode 
contribuir com algo bom e não uma copia de algo que ja exista. Outra coisa, o 
que existe la pode ser antigo, nesse caso vc pode ou tentar assumir aquele 
projeto ou lançar o seu baseado nos principios (oo, funcional, assincrono, etc) 
que vc acredita. se o modulo for ruim ninguem vai usar, simples assim.



2012/10/25 Aureliano Guedes guedes_1...@hotmail.com






Cara, eu acho o CPAN maravilhoso, mas as vezes é frustante você saber que está 
criando algo que ja existe.

Valeu.


From: creakt...@gmail.com


Date: Thu, 25 Oct 2012 22:33:46 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

++breno!


ABS()




2012/10/25 breno br...@rio.pm.org


2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:

 Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más praticas,

 mandando reguex em xml e tals.



 Quero fazer de forma bonita com XPath e tals. Mas ainda estou em processo de

 entendet tudo isso.



 Estou tentando pegar o primeiro link da lista de videos de um resultado de

 pesquisa do YouTube.

 Para isso estou ultilizando uma API do YouTube:

 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos







 Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx





Olha, fora tudo, posso te garantir que não há erros :)



Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma

busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz

buscas e muito mais.



https://metacpan.org/module/WebService::GData::YouTube#search_video



O one-liner abaixo, por exemplo, exibe o título do primeiro

resultado para uma busca no YouTube por perl:



perl -MWebService::Gdata::YouTube -E 'my $yt =

WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);

say $_-title foreach @{ $yt-search_video() }'





[]s



-b

___

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 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] HTML::Parse

2012-10-25 Por tôpico Stanislaw Pusep
++breno!

ABS()



2012/10/25 breno br...@rio.pm.org

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
  Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más
 praticas,
  mandando reguex em xml e tals.
 
  Quero fazer de forma bonita com XPath e tals. Mas ainda estou em
 processo de
  entendet tudo isso.
 
  Estou tentando pegar o primeiro link da lista de videos de um resultado
 de
  pesquisa do YouTube.
  Para isso estou ultilizando uma API do YouTube:
 
 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos
 
  Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx
 

 Olha, fora tudo, posso te garantir que não há erros :)

 Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma
 busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz
 buscas e muito mais.

 https://metacpan.org/module/WebService::GData::YouTube#search_video

 O one-liner abaixo, por exemplo, exibe o título do primeiro
 resultado para uma busca no YouTube por perl:

 perl -MWebService::Gdata::YouTube -E 'my $yt =
 WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);
 say $_-title foreach @{ $yt-search_video() }'


 []s

 -b
 ___
 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] HTML::Parse

2012-10-25 Por tôpico Aureliano Guedes

Cara, eu acho o CPAN maravilhoso, mas as vezes é frustante você saber que está 
criando algo que ja existe.

Valeu.


From: creakt...@gmail.com
Date: Thu, 25 Oct 2012 22:33:46 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

++breno!
ABS()




2012/10/25 breno br...@rio.pm.org


2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:

 Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más praticas,

 mandando reguex em xml e tals.



 Quero fazer de forma bonita com XPath e tals. Mas ainda estou em processo de

 entendet tudo isso.



 Estou tentando pegar o primeiro link da lista de videos de um resultado de

 pesquisa do YouTube.

 Para isso estou ultilizando uma API do YouTube:

 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos





 Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx





Olha, fora tudo, posso te garantir que não há erros :)



Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma

busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz

buscas e muito mais.



https://metacpan.org/module/WebService::GData::YouTube#search_video



O one-liner abaixo, por exemplo, exibe o título do primeiro

resultado para uma busca no YouTube por perl:



perl -MWebService::Gdata::YouTube -E 'my $yt =

WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);

say $_-title foreach @{ $yt-search_video() }'





[]s



-b

___

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 mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] HTML::Parse

2012-10-25 Por tôpico Solli Honorio
Mas também sempre tem algo a ser feito, alguma feature nova ou algum bug a
ser corrigido.

Solli

Em 26 de outubro de 2012 01:14, Ole Peter Smith ole@gmail.comescreveu:

 aureliano

 todo programador tem que passar por isso, criar algo que ja existe.
 chama-se aprendizagem

 0le

 Send via Android
 On Oct 25, 2012 10:16 PM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

  Cara, eu acho o CPAN maravilhoso, mas as vezes é frustante você saber
 que está criando algo que ja existe.

 Valeu.


 --
 From: creakt...@gmail.com
 Date: Thu, 25 Oct 2012 22:33:46 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 ++breno!

 ABS()



 2012/10/25 breno br...@rio.pm.org

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
  Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más
 praticas,
  mandando reguex em xml e tals.
 
  Quero fazer de forma bonita com XPath e tals. Mas ainda estou em
 processo de
  entendet tudo isso.
 
  Estou tentando pegar o primeiro link da lista de videos de um resultado
 de
  pesquisa do YouTube.
  Para isso estou ultilizando uma API do YouTube:
 
 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos
 
  Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx
 

 Olha, fora tudo, posso te garantir que não há erros :)

 Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma
 busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz
 buscas e muito mais.

 https://metacpan.org/module/WebService::GData::YouTube#search_video

 O one-liner abaixo, por exemplo, exibe o título do primeiro
 resultado para uma busca no YouTube por perl:

 perl -MWebService::Gdata::YouTube -E 'my $yt =
 WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);
 say $_-title foreach @{ $yt-search_video() }'


 []s

 -b
 ___
 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 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




-- 
o animal satisfeito dorme. - Guimarães Rosa
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] HTML::Parse

2012-10-25 Por tôpico breno
O segredo é pesquisar antes, cara, ou mesmo perguntar. Com CPAN, 90%
de qualquer programa já está pronto :)

Agora, você não precisa criar módulos... Por que não criar programas
que usam esses módulos para fazer algo bacana? Por exemplo, a Renata
me mostrou outro dia um site muito interessante chamado
musicplayr.com, que integra diferentes listas de vídeos de música de
sites como Vimeo, YouTube e SoundCloud. Mas não precisa nem ser pra
web: que tal um programa que baixa todos os seus vídeos favoritados no
YouTube? Com Perl e CPAN, isso é muito fácil, e é o tipo do programa
super útil pra quem gosta de manter cópias de seus vídeos favoritos
para ver offline.

Além disso, é como Gabriel e Solli falaram: escrever algo que já
existe faz parte do aprendizado (e como tem sempre mais de uma maneira
de se fazer as coisas, não há nada de errado em lançar módulos
alternativos), e mesmo módulos já existentes podem se beneficiar com a
implementação de novas features e correções de bugs.

É isso. Agora vá e crie coisas incríveis.
:)

[]s

-b

2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
 Cara, eu acho o CPAN maravilhoso, mas as vezes é frustante você saber que
 está criando algo que ja existe.

 Valeu.


 
 From: creakt...@gmail.com
 Date: Thu, 25 Oct 2012 22:33:46 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 ++breno!

 ABS()



 2012/10/25 breno br...@rio.pm.org

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
 Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más praticas,
 mandando reguex em xml e tals.

 Quero fazer de forma bonita com XPath e tals. Mas ainda estou em processo
 de
 entendet tudo isso.

 Estou tentando pegar o primeiro link da lista de videos de um resultado de
 pesquisa do YouTube.
 Para isso estou ultilizando uma API do YouTube:

 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos

 Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx


 Olha, fora tudo, posso te garantir que não há erros :)

 Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma
 busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz
 buscas e muito mais.

 https://metacpan.org/module/WebService::GData::YouTube#search_video

 O one-liner abaixo, por exemplo, exibe o título do primeiro
 resultado para uma busca no YouTube por perl:

 perl -MWebService::Gdata::YouTube -E 'my $yt =
 WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);
 say $_-title foreach @{ $yt-search_video() }'


 []s

 -b
 ___
 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 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] HTML::Parse

2012-10-21 Por tôpico Aureliano Guedes

Ola.

Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma coisa.
Eu tenho um botão:
a 
href=/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3
 rel=nofollow title=Download Fernando E Sorocaba Tenso.mp3!
img src=/images/download.jpg width=95 height=25 alt=Baixar 
Fernando E Sorocaba Tenso style=border:0 //a
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 guedes_1...@hotmail.com






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 guedes_1...@hotmail.com








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

Re: [Rio-pm] HTML::Parse

2012-10-21 Por tôpico Aureliano Guedes

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:
a 
href=/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+Tenso.mp3
 rel=nofollow title=Download Fernando E Sorocaba Tenso.mp3!
img src=/images/download.jpg width=95 height=25 alt=Baixar 
Fernando E Sorocaba Tenso style=border:0 //a
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 guedes_1...@hotmail.com






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 guedes_1...@hotmail.com








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

Re: [Rio-pm] HTML::Parse

2012-10-20 Por tôpico Aureliano Guedes

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 guedes_1...@hotmail.com






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 guedes_1...@hotmail.com








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 guedes_1...@hotmail.com










Parece interessante mesmo, mas dificil de entender, principalmente quando é 
alguem que como eu não sabe nada de HTML.
Realmente não entendi como faria tudo isso com o Web::Scraper.

From: marciodesouzaferre...@gmail.com






Date: Fri, 19 Oct 2012 21:14:53 -0300
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos deuses, 
vc faz um crawler em 5' com ele, bem estilo Perl

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico Aureliano Guedes

Isso, é mais ou menos isso mesmo.
No caso você usou o WWW:Mechanize, que apesar de eu usar como navegador nunca 
tinha parado para ver essa propriedade dele.
Mas será que não fica um pouco pesado não usar o Mechanize?

Eu não entendi como usar o Web::Scraper indicado pelo Junior.

Mas ja me ajudaram, obrigado.

Date: Fri, 19 Oct 2012 14:47:38 -0300
From: andregarciacarne...@gmail.com
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

Vários módulos e vários jeitos de fazer!


Se eu entendi o que você precisa, pode ser assim:
use common::sense;use WWW::Mechanize;
my $m = WWW::Mechanize-new();$m-get('http://www.google.com');my @Links = 
$m-links();foreach my $link(@Links){

say $link-text;}undef $m;

#Por favor, RTFM aqui: 
http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize/Link.pm 


Caso não seja isso o que você quer, explique melhor por gentileza!







2012/10/19 Aureliano Guedes guedes_1...@hotmail.com






Ola monges,
tudo bem?

Qual um bom modulo para buscar string em um HTML?
Vocês aconselham o HTML::Parse?

Eu não entendo muito de html, mas estou tentando pegar um link dentro de uma 
pagina.

Um exemplo é esse: http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/



Os Links estão nesse formato: 
a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
title=Thaeme E Thiago - Ai Que Do


O Problema é que no caso dessa pagina tem 4 links desse modelo e eu queria 
pegar apenas o primeiro.
Poderia usar regexp mas anteriormente me disseram que não é muito elegante 
parsear HTML na unha.

Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.



Att,
Aureliano Guedes.
  

___

Rio-pm mailing list

Rio-pm@pm.org

http://mail.pm.org/mailman/listinfo/rio-pm


-- 
André Garcia Carneiro
Software Engineer


(11)982907780



___
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] HTML::Parse

2012-10-19 Por tôpico Aureliano Guedes

Acho que estou cometendo algum erro.

#!/usr/bin/env perl

use strict;
use warnings;
use WWW::Mechanize;

sub parse {
my ($self) = shift;
$self =~ s/\s+/\+/g;
chomp $self;
chop $self;
return $self;
}

sub link_gen {
my $self = shift; 
my $link = http://www.buscamp3.org/busca/; . $self;
return $link;
}

sub get_donwloader_link {
my $self = shift;
my $m = WWW::Mechanize-new();
$m-get($self);
my @Links = $m-links();
foreach my $link(@Links){
print $link-text();

}
undef $m;
}

open IN, $ARGV[0] or die;
foreach (IN){
print Search for:  . $_ . \n;
print get_donwloader_link (link_gen (parse ($_)));
print \n__\n;
}

From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Fri, 19 Oct 2012 17:56:34 +
Subject: Re: [Rio-pm] HTML::Parse





Isso, é mais ou menos isso mesmo.
No caso você usou o WWW:Mechanize, que apesar de eu usar como navegador nunca 
tinha parado para ver essa propriedade dele.
Mas será que não fica um pouco pesado não usar o Mechanize?

Eu não entendi como usar o Web::Scraper indicado pelo Junior.

Mas ja me ajudaram, obrigado.

Date: Fri, 19 Oct 2012 14:47:38 -0300
From: andregarciacarne...@gmail.com
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

Vários módulos e vários jeitos de fazer!


Se eu entendi o que você precisa, pode ser assim:
use common::sense;use WWW::Mechanize;
my $m = WWW::Mechanize-new();$m-get('http://www.google.com');my @Links = 
$m-links();foreach my $link(@Links){

say $link-text;}undef $m;

#Por favor, RTFM aqui: 
http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize/Link.pm 


Caso não seja isso o que você quer, explique melhor por gentileza!







2012/10/19 Aureliano Guedes guedes_1...@hotmail.com






Ola monges,
tudo bem?

Qual um bom modulo para buscar string em um HTML?
Vocês aconselham o HTML::Parse?

Eu não entendo muito de html, mas estou tentando pegar um link dentro de uma 
pagina.

Um exemplo é esse: http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/



Os Links estão nesse formato: 
a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
title=Thaeme E Thiago - Ai Que Do


O Problema é que no caso dessa pagina tem 4 links desse modelo e eu queria 
pegar apenas o primeiro.
Poderia usar regexp mas anteriormente me disseram que não é muito elegante 
parsear HTML na unha.

Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.



Att,
Aureliano Guedes.
  

___

Rio-pm mailing list

Rio-pm@pm.org

http://mail.pm.org/mailman/listinfo/rio-pm


-- 
André Garcia Carneiro
Software Engineer


(11)982907780



___
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 mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico Aureliano Guedes

Opa, valeu mesmo a ajuda. 
Eu consegui o que queria nessa primeira etapa, ficou assim:
http://pastebin.com/GzAnaCK1

Agora tenho outro problema.

O link direciona para uma pagina de download, seguindo nosso exemplo temo a 
seguinte pagina: 
http://www.buscamp3.org/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html

Dentro dessa pagina é que esta o link do download, como no caso: 
www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/thaeme+e+thiago+ai+que+do.mp3

A duvida agora continua sendo banal: Como faço para salvar esse arquivo em um 
diretorio?.
No momento que requisitar a pagina virá o arquivo normalmente??

Pois eu tentei dar um get no arquivo dessa forma e não deu certo:

use LWP::Simple;
my $url = get 
('www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/thaeme+e+thiago+ai+que+do.mp3');
open OUT,. 'abcde.mp3';
print OUT $url;

Tentei usar: binmode $url;

Nenhuma dessas tentativas deu certo.

Tem alguma forma especial de fazer download de arquivo *.mp3?

From: gabriel.vie...@gmail.com
Date: Fri, 19 Oct 2012 15:48:03 -0300
To: rio-pm@pm.org
Subject: Re: [Rio-pm] HTML::Parse

---8---perl -MMojo::UserAgent -E 'say 
Mojo::UserAgent-new-get(http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/;)-res-dom(table.linhas_lista)-[0]-find(a)-[0]-{href}'


---8---
ou
---8---mojo get 
http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/  a 12 attr href

---8---
2012/10/19 Aureliano Guedes guedes_1...@hotmail.com






Ola monges,
tudo bem?

Qual um bom modulo para buscar string em um HTML?
Vocês aconselham o HTML::Parse?

Eu não entendo muito de html, mas estou tentando pegar um link dentro de uma 
pagina.

Um exemplo é esse: http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/



Os Links estão nesse formato: 
a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
title=Thaeme E Thiago - Ai Que Do


O Problema é que no caso dessa pagina tem 4 links desse modelo e eu queria 
pegar apenas o primeiro.
Poderia usar regexp mas anteriormente me disseram que não é muito elegante 
parsear HTML na unha.

Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.



Att,
Aureliano Guedes.
  

___

Rio-pm mailing list

Rio-pm@pm.org

http://mail.pm.org/mailman/listinfo/rio-pm


-- 
Gabriel Vieira



___
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] HTML::Parse

2012-10-19 Por tôpico Marcio Ferreira
estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
e deixa você focar na solução) isso se o HTML não for um monstrengo =)

[]s,

Marcio Ferreira
@_marcioferreira
(11) 8567-1482   skype: marcio.ferreir4
marciodesouzaferreira.blogspot.com



2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu
 queria pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito
 elegante parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 Att,
 Aureliano Guedes.

 ___
 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http://flavors.me/prenzier
  http://www.diigo.com/user/prenzier



 ___
 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] HTML::Parse

2012-10-19 Por tôpico Stanislaw Pusep
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 perl
use 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 guedes_1...@hotmail.com

  Parece interessante mesmo, mas dificil de entender, principalmente quando
 é alguem que como eu não sabe nada de HTML.
 Realmente não entendi como faria tudo isso com o Web::Scraper.

 --
 From: marciodesouzaferre...@gmail.com
 Date: Fri, 19 Oct 2012 21:14:53 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
 deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
 e deixa você focar na solução) isso se o HTML não for um monstrengo =)

 []s,

 Marcio Ferreira
 @_marcioferreira
 (11) 8567-1482   skype: marcio.ferreir4
 marciodesouzaferreira.blogspot.com



 2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu queria
 pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito elegante
 parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 Att,
 Aureliano Guedes.

 ___
 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http://flavors.me/prenzier
  http://www.diigo.com/user/prenzier



 ___
 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 mailing list
 Rio-pm@pm.org

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico marcio souza ferreira
admiro alguns da lista, meia-noite de uma sexta-feira e a nerdaiada
postando código e outros lendo K

forever alone level master!

Em 20 de outubro de 2012 00:13, Stanislaw Pusep creakt...@gmail.comescreveu:

 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 perl
 use 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 guedes_1...@hotmail.com

  Parece interessante mesmo, mas dificil de entender, principalmente
 quando é alguem que como eu não sabe nada de HTML.
 Realmente não entendi como faria tudo isso com o Web::Scraper.

 --
 From: marciodesouzaferre...@gmail.com
 Date: Fri, 19 Oct 2012 21:14:53 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
 deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
 e deixa você focar na solução) isso se o HTML não for um monstrengo =)

 []s,

 Marcio Ferreira
 @_marcioferreira
 (11) 8567-1482   skype: marcio.ferreir4
 marciodesouzaferreira.blogspot.com



 2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu
 queria pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito
 elegante parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 Att,
 Aureliano Guedes.

 ___
 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http://flavors.me/prenzier
  http://www.diigo.com/user/prenzier



 ___
 Rio-pm mailing list
 Rio-pm@pm.org

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico Stanislaw Pusep
É a inspiração trazida pelo YAPC::Brasil, transbordando ;)

ABS()



2012/10/20 marcio souza ferreira marciodesouzaferre...@gmail.com

 admiro alguns da lista, meia-noite de uma sexta-feira e a nerdaiada
 postando código e outros lendo K

 forever alone level master!

 Em 20 de outubro de 2012 00:13, Stanislaw Pusep creakt...@gmail.comescreveu:

 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 perl
 use 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 guedes_1...@hotmail.com

  Parece interessante mesmo, mas dificil de entender, principalmente
 quando é alguem que como eu não sabe nada de HTML.
 Realmente não entendi como faria tudo isso com o Web::Scraper.

 --
 From: marciodesouzaferre...@gmail.com
 Date: Fri, 19 Oct 2012 21:14:53 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
 deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
 e deixa você focar na solução) isso se o HTML não for um monstrengo =)

 []s,

 Marcio Ferreira
 @_marcioferreira
 (11) 8567-1482   skype: marcio.ferreir4
 marciodesouzaferreira.blogspot.com



 2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu
 queria pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito
 elegante parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 Att,
 Aureliano Guedes.

 ___
 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http