<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más praticas, mandando reguex em xml e tals.<br><br>Quero fazer de forma bonita com XPath e tals. Mas ainda estou em processo de entendet tudo isso.<br><br>Estou tentando pegar o primeiro link da lista de videos de um resultado de pesquisa do YouTube.<br>Para isso estou ultilizando uma API do YouTube: https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos<br><br>Onde estão os erros fora tudo?? -> http://pastebin.com/T06Mi1Nx<br><br>#!/usr/bin/env perl<br><br>use common::sense;<br>use WWW::Mechanize;<br>use URI::Escape;<br>use HTML::TreeBuilder::XPath;<br><br>my $html = WWW::Mechanize->new(timeout=>100);<br><br>open IN, $ARGV[0] or die $!;<br><br>foreach (<IN>){<br>    s/\s+/\+/g;<br>    chomp;<br>    my $url = 'https://gdata.youtube.com/feeds/api/videos?q=' . uri_escape($_);<br>    $html->get($url);<br>    if ($html->is_success){<br>        my $page = $html->content;<br>        $page =~ s/(\n\r|\r\n)|\r/\n/g;<br>        <br>        my $tree = HTML::TreeBuilder::XPath->new();<br>        <br>        my $node = $tree->findenodes('/html/body//a[@href=(.*)]')->[0];<br>        <br>        print $node;<br>    }<br>    else {<br>        print "FAIL: " . $! . "\n";<br>    }<br>}<br><br><br><br><div><div id="SkyDrivePlaceholder"></div>> Date: Thu, 25 Oct 2012 13:06:40 -0200<br>> From: breno@rio.pm.org<br>> To: rio-pm@pm.org<br>> Subject: Re: [Rio-pm] HTML::Parse<br>> <br>> 2012/10/21 Aureliano Guedes <guedes_1000@hotmail.com><br>> ><br>> > Ola.<br>> ><br>> > Eu estoiu tentando usar o WWW::Mechanize, mas não estou entendendo uma coisa.<br>> > Eu tenho um botão:<br>> ><br>> > <a href="/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+++++Tenso.mp3" rel="nofollow" title="Download Fernando E Sorocaba     Tenso.mp3!"><br>> >         <img src="/images/download.jpg" width="95" height="25" alt="Baixar Fernando E Sorocaba     Tenso" style="border:0" /></a><br>> ><br>> ><br>> > Como eu faço para clicar nele usando o metodo click_button? Como faço para setar esse botão?<br>> > Eu tentei:<br>> > $m->click_button(value=>/dl/347357664b655256724e/554545485125135/Fernando+E+Sorocaba+++++Tenso.mp3);<br>> > Mas não da certo.<br>> ><br>> <br>> O seu botão não é um botão (<button> ou <input type="button">) e sim<br>> um link (<a>). O Mechanize sabiamente os diferencia, e você<br>> provavelmente está procurando o método follow_link()<br>> <br>> https://metacpan.org/module/WWW::Mechanize#mech-follow_link-...-<br>> <br>> Finalmente, se quiser aprender sobre XPath e Seletores CSS, recomendo<br>> os seguintes artigos:<br>> <br>> http://sao-paulo.pm.org/artigo/2010/utilizandoxpathparacriarwebspiders<br>> http://sao-paulo.pm.org/artigo/2011/ExtracaodedadoscomperlxpatheregexExportadoemODF<br>> http://sao-paulo.pm.org/artigo/2011/ScrapingfacilcomMojoliciousefeedsAtom<br>> (veja no final: guia de referência rápida para seletores CSS)<br>> <br>> ou ir direto na fonte:<br>> <br>> http://www.w3.org/TR/xpath/<br>> http://www.w3.org/TR/CSS2/selector.html<br>> http://www.w3.org/TR/css3-selectors/<br>> <br>> []s<br>> <br>> -b<br>> _______________________________________________<br>> Rio-pm mailing list<br>> Rio-pm@pm.org<br>> http://mail.pm.org/mailman/listinfo/rio-pm<br></div>                                     </div></body>
</html>