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: [email protected] > To: [email protected] > Subject: Re: [Rio-pm] HTML::Parse > > 2012/10/21 Aureliano Guedes <[email protected]> > > > > 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 > [email protected] > http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
