[Cascavel-pm] Download Zip File

Roan Brasil Monteiro roanbrasil em gmail.com
Quinta Agosto 26 11:39:56 PDT 2010


Galera fiz um projeto aqui e estou fazendo download de um zip file, só que
não estou conseguindo usando a lib, alguem pode me ajudar?

Parser.pm
{
    package Parser;
    use HTML::TreeBuilder::XPath;

    sub new{
         my $class = shift;
            my $self = {};
           bless $self, $class;
         return $self;
    }

    sub extractHrefContent{
        my $self = shift;
        my $html_content = shift;
        my $tree = HTML::TreeBuilder::XPath->new;
        $tree->parse_content(do { local($/); $html_content});
        my @array;
        my $cont = 0;
        for my $result ($tree->findnodes(q{/html/body/ul/li})) {
            my $x = HTML::TreeBuilder::XPath->new;
            $x->parse($result->as_HTML);
            my $variavel = $x->findvalue(q{//a});
            $array[$cont]= $variavel;
            $cont++;
        }
        return @array;
    }
    return 1;
}


Login.pm
{
package Login;
use WWW::Mechanize;
use MIME::Base64;
use HTTP::Response;

sub new{
      my $class = shift;
       my $self = {};
      bless $self, $class;
      return $self;
}

sub request_uri(){
    my $self = shift;
    my $url = shift;
    my $agent = WWW::Mechanize->new();
    my @args = (
    Authorization => "Basic " .
    MIME::Base64::encode( 'user' . ':' .'password' )
    );

    # $agent->credentials( ADDRESS, REALM, USER, PASS );
    my $res = HTTP::Response->new;
    $res =
        $agent->get( $url,
                    @args );

    my $html_content = $res->decoded_content;
    return $html_content;
}
 return 1;
}


ReleaseControlDownloader.pm

package ReleaseControlDownloader;
use strict;
use Login;
use Parser;
use Net::Download::Queue;

#     URL de requisição
     my $url = 'http://200.124.194.230/Getnet';
#     request URL and get the html content
     my $login = Login->new();
     my $html_content = $login->request_uri($url);


     my $parser = Parser->new();
     my @list = $parser->extractHrefContent($html_content);

     my $cont = 0;
     while($cont < $#list){
        my $variavel = $list[$cont];
        $cont++;
        # tira o espaço em branco
        $variavel =~ s/\s//g;  ;
        my $complete_url = $url."/".$variavel;
        if($cont==5){
            my $oQueue = Net::Download::Queue->new() or die;
              my $oDownload = $oQueue->oDownloadAdd(
            $complete_url,
              "C:\\",
              $variavel,
              ) or die;
        }
     }



Até mesmo se eu pegar um pagina qualquer para fazer o download por exemplo
qualquer  URL.zip para eu testar.

Alguem se habilita? GOLFFFFFFFFFFFFFFFFFFFFFFFFFFFF


-- 
Atenciosamente,

Roan Brasil Monteiro
http://roanbrasil.wordpress.com/
http://www.gramaro.com.br/ - Grama em Tapete Salvador Bahia
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20100826/75b1e078/attachment.html>


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