[Rio-pm] HTML::Parse

Aureliano Guedes guedes_1000 em hotmail.com
Sexta Outubro 19 11:19:01 PDT 2012


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_1000 em hotmail.com
To: rio-pm em pm.org
Date: Fri, 19 Oct 2012 17:56:34 +0000
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: andregarciacarneiro em gmail.com
To: rio-pm em 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_1000 em 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 em pm.org

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


-- 
André Garcia Carneiro
Software Engineer


(11)982907780



_______________________________________________
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/20121019/89bb9fc9/attachment.html>


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