[Rio-pm] HTML::Parse

marcio souza ferreira marciodesouzaferreira em gmail.com
Sexta Outubro 19 20:37:19 PDT 2012


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

forever alone level master!

Em 20 de outubro de 2012 00:13, Stanislaw Pusep <creaktive at gmail.com>escreveu:

> 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 at 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_1000 at 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: marciodesouzaferreira at gmail.com
>> Date: Fri, 19 Oct 2012 21:14:53 -0300
>>
>> To: rio-pm at 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 <rafaelprenzier at gmail.com>
>>
>> WWW::Mechanize ++
>>
>>
>> 2012/10/19 Ricardo Filipo <ricardo_filipo at 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_1000 at hotmail.com>
>> *Para:* Rio PM <rio-pm at 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 at pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm at 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 at pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
>>
>> _______________________________________________ Rio-pm mailing list
>> Rio-pm at pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm at pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121020/ab3cea5a/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm