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.
From: [email protected]
To: [email protected]
Date: Sat, 20 Oct 2012 17:28:46 +0000
Subject: Re: [Rio-pm] HTML::Parse
Opa, Bruno, obrigado pela resposta sua e de todos os outros que estão me
ajudando.
Irei tentar seguir o que me falaram e depois darei um feedback dos resultados.
From: [email protected]
Date: Sat, 20 Oct 2012 13:44:45 -0300
To: [email protected]
Subject: Re: [Rio-pm] HTML::Parse
Então provavelmente eles estão verificando pelo referer no header do request
HTTP [1].
Não sei como funciona o LWP::Simple, mas com o LWP::UserAgent você consegue
setar parametros pro header a ser enviado. No caso você deveria setar o referer
para
'http://www.buscamp3.org/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html'.
Outra opção talvez seja usar o WWW::Mechanize, acho que ele faz isso
automaticamente para você, se você utilizar as funções de "navegação" dele.
No mais, deixe-me discordar da seguinte frase que você escreveu anteriormente
(sobre XPath e seletores CSS): "Nesse caso não é pra mim, não retenho esses
conhecimentos."
Se você não conhece XPath e/ou seletores CSS, você deveria procurar dar uma
olhada/estudada breve neles se isso for necessário para resolver um problema
seu. É uma mentalidade melhor do que assumir que você não sabe, nem vai
apreender e por isso limitar o seu leque de opções para fazer o que você quer ;)
[ ]'s
[1] https://en.wikipedia.org/wiki/HTTP_referer
2012/10/20 Aureliano Guedes <[email protected]>
Pois é Bruno, aqui tambem da erro, mas se eu entrar nessa pagina
http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/ e clicar no link o
download inicia, e aparentemente é esse o link, a não ser que esse link que eu
esteja pegando da pagina esteja errado é o link de download seja outro.
From: [email protected]
Date: Sat, 20 Oct 2012 12:39:02 -0300
To: [email protected]
Subject: Re: [Rio-pm] HTML::Parse
Você consegue fazer o download desse arquivo manualmente, colando o endereço no
seu próprio browser?Aqui esse link da erro...
[ ]'s
2012/10/20 Aureliano Guedes <[email protected]>
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: [email protected]
To: [email protected]
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: [email protected]
Date: Sat, 20 Oct 2012 00:13:10 -0300
To: [email protected]
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@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 <[email protected]>
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: [email protected]
Date: Fri, 19 Oct 2012 21:14:53 -0300
To: [email protected]
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.ferreir4marciodesouzaferreira.blogspot.com
2012/10/19 Rafael Prenzier <[email protected]>
WWW::Mechanize ++
2012/10/19 Ricardo Filipo <[email protected]>
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 <[email protected]>
Para: Rio PM <[email protected]>
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
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
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
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
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
_______________________________________________
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
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
--
Bruno C. Buss
http://www.brunobuss.net
_______________________________________________
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
--
Bruno C. Buss
http://www.brunobuss.net
_______________________________________________
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
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm