[Rio-pm] HTML::Parse

Aureliano Guedes guedes_1000 em hotmail.com
Sábado Outubro 20 08:29:24 PDT 2012


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_1000 em hotmail.com
To: rio-pm em pm.org
Date: Sat, 20 Oct 2012 15:25:29 +0000
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: creaktive em gmail.com
Date: Sat, 20 Oct 2012 00:13:10 -0300
To: rio-pm em 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 em 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_1000 em 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 em gmail.com


Date: Fri, 19 Oct 2012 21:14:53 -0300
To: rio-pm em 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 em _marcioferreira(11) 8567-1482   skype: marcio.ferreir4marciodesouzaferreira.blogspot.com








2012/10/19 Rafael Prenzier <rafaelprenzier em gmail.com>




WWW::Mechanize ++

2012/10/19 Ricardo Filipo <ricardo_filipo em 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 em hotmail.com>
 Para: Rio PM <rio-pm em 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 em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm






     
_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

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


-- 




Rafael Prenzier dos Santos | Engenheiro e Perl Monger 


 (11) 5209-0847
www.prenzier.com




            









_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

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



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  

_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

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



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  

_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121020/826c72d2/attachment-0001.html>


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