Re: [Rio-pm] YAPC::Brasil 2012 - Parceria com o 155 Hotel
Tenta ligar lá.. pode ser que facilite 2012/10/19 Nilson Santos Figueiredo Jr. aci...@gmail.com Na verdade, minha empresa fez reserva pra mim no ibis budget, que fica mais longe. Ao chegar aí vou ver de ainda consigo pegar a promoção do YAPC nesse hotel, mesmo sem reserva... -Nilson On Oct 18, 2012 8:07 PM, Gabriel Vieira gabriel.vie...@gmail.com wrote: Eu estou aqui já, acredito que o Nilson também venha. 2012/10/18 Leo Balter leonardo.bal...@gmail.com Quem vai ficar no 155? []s Em 10 de outubro de 2012 18:18, Gabriel Vieira gabriel.vie...@gmail.com escreveu: O YAPC::Brasil 2012 (http://www.yapcbrasil.org.br/2012) conseguiu preços diferenciados no 155 Hotel (http://www.155hotel.com.br/), localizado a apenas 850 metros do Shopping Frei Caneca ( http://goo.gl/maps/UfHup). As diárias diárias serão de apenas R$ 140,00, sem cobrança de impostos ou taxa de serviço, para uma ou duas pessoas, com check-in às 14h e check-out às 13h, com café da manhã, sendo de 2ª a 6ª feira das 06h30 às 10h30 e aos sábados e domingos das 06h30 às 12h00. Como garantir o desconto: 1) Acessar http://www.155hotel.com.br/ e realizar a reserva online (não se preocupe com o valor apresentado, o pagamento é efetuado apenas na hora do check in); 2) Ao chegar ao hotel e realizar o check in, apresentar o comprovante de inscrição no YAPC::Brasil 2012, será informado o valor total já com o desconto. Observações: 1) Não será fornecido desconto a quem não apresentar o comprovante de inscrição no YAPC::Brasil 2012; 2) Não haverá devolução de dinheiro para quem realizar a inscrição no YAPC::Brasil 2012 após feito o check in; 3) Acredito que a reserva poderá ser realizada também pelo telefone (11) 3150 1555. Informações retiradas do site do Hotel: --- 155 HOTEL - São Paulo Conforto e Praticidade por preço Justo Um cantinho tranquilo no meio da correria de São Paulo, o 155 Hotel trabalha com o conceito de Low Cost de hotel econômico, oferecendo praticidade e comodidade a um baixo custo. Está localizado no bairro Consolação nas proximidades da famosa rua Augusta, o hotel é uma aconchegante opção para quem busca um quarto confortável para desfrutar de São Paulo e que não fique pesado no bolso. Além de oferecer aos seus hóspedes um espaço incomparável em São Paulo, o Hotel 155 busca através de novas tecnologias de inteligência ambiental manter-se como uma instituição sustentável com o reuso das águas da chuva e também sistema economizador de energia. Juntos estes fatores permitem o 155 a ser um hotel econômico, oferecendo um preço justo aos visitantes da cidade de São Paulo. Todos os quartos dispõe de: - TV LCD 32 com SKY - Internet wireless grátis - Ar condicionado inteligente - Frigobar - Janelas Antirruido - Cama box spring - Roupa de cama antialérgica - Cofre digital - Fechadura eletrônica - Estação de trabalho - Detector de fumaça (100% antifumo) - Água do chuveiro aquecida a gás --- -- 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 -- 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 -- Gabriel Vieira ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
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
Re: [Rio-pm] HTML::Parse
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
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
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
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
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
É 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