[Cascavel-pm] WWW::Mechanize

vict0r vgdias em gmail.com
Sábado Fevereiro 3 07:03:57 PST 2007


Igor,
muito obrigado pela resposta.
Eu tenho módulos em desenvolvimento para administrar e monitorar os
roteadores e switches de diversos fabricantes, q costumam fazer isso
extraindo informações através de comandos no próprio terminal,
especificamente este se refere a um switch de conteúdo Alteon que eu
preciso extrair relatórios de estado de diversos servidores que
possuem tráfego balanceado por este equipamento, mas não fiquei
satisfeito com o q consegui através dos comandos disponíveis e resolvi
usar uma estratégia diferente, descobri q através da interface web
dele é possível gerar os relatórios q eu preciso já prontinhos.
A minha idéia então era executar essas chamadas via web e obter os relatórios.
Depois eu vi q não conseguiria com o wget pq se trata de uma interface
em Javascript, e os relatórios são gerados por chamadas, e agora não
tenho certeza se conseguirei em perl tb, pois preciso executar essas
chamadas remotamente, e não tenho as API's dessa interface web em Java
pra isso..
A solução q estou conseguindo implementar com sucesso agora é extrair
localmente as informações q preciso do arquivo de salva da
configuração do equipamento, que é um dump de tudo q está configurado
nele, exportado via tftp por outro módulo já em produção, mas terei q
correlacionar os dados e formatar o relatório.
Em um primeiro momento será uma salva local para envio por email, mas
a idéia é depois popular o banco.
Os relatórios são gerados em html, e o número de links depende do
tamanho do relatório.
Bom, acho q é isso. :-)

Agradeço a ajuda de todos, e na segunda vou testar a sua dica.
Abração.

On 2/2/07, BOO <mayakuuri em bol.com.br> wrote:
> Olá vict0r,
>
> Acho que o problema é que tu não definiu onde guardar cookies e não
> passou as credenciais...
> Tenta algo tipo:
>
> <code>
>
> use strict;
> use warnings;
> use Carp qw(croak);
> use WWW::Mechanize;
>
> my $web = WWW::Mechanize->new(timeout => 30);
>
> my $url = "http://10.0.1.2";
>
> ######## ACHO QUE FOI ISSO QUE FALTOU ########
>
> $web->cookie_jar({ file => "./.cookies.txt" });
> $web->credentials('vict0r', 'senha_do_vict0r');
>
> ########################################
>
> my $ret = $web->get($url);
>
> if ($ret->code != 200){
>   croak "Deu algo errado... Poste isso em cascavel-pm para ser ajudado !";
> }
>
> my $html = $ret->content;
>
> faz_algo_que_preste_com($html);
>
> </code>
>
>
> Bem, isso não responde completamente a tua pergunta, pois faltam
> elementos importantes...
>
> 1) Tu ta usando que tipo de autenticação (form+sessão, basic, digest,
> session-token, et cetera) ?
> 2) Precisa gravar o que foi coletado em disco ou vai passar para um
> banco de dados ?
> 3) Qual o nível de recursividade para ir seguindo os links ?
> 4) Qualé o propósito principal do script que tu queres desenvolver ?
>
> Por favor, responda essas perguntas e poste novos problemas que tu
> esteja tendo para que possamos
> te ajudar melhor, ok ?
>
> Abraço.
>
> Igor Garcia
>
>
> vict0r wrote:
> > Srs.,
> > gostaria de pedir a ajuda de vocês se possível.
> > Preciso fazer o download de páginas HTML incluindo seus links
> > internos, essa páginas estão em um servidor web de um switch da minha
> > rede, portanto terei que autenticar para ter acesso.
> > Pesquisei no cpan e encontrei o modulo WWW::Mechanize, que parece
> > fazer o q preciso, incluindo autenticação e follow_link.
> > Gostaria de saber se essa é a melhor opção nesse caso, pois escrevi um
> > pequeno script só pra testar as funções do módulo e estou tendo
> > problemas.
> > ####
> > #!/usr/bin/perl
> >
> >
> > use WWW::Mechanize;
> >
> > my $mech = WWW::Mechanize->new();
> > my $url = http://10.0.1.2;
> > $mech->get( $url );
> > my $res = $mech->status();
> > print "$res\n";
> > ####
> >
> > Retorno: 501
> >
> > Se tentar usar outros métodos diferentes do status(), o resultado é sempre:
> >
> > 501 Protocol scheme ' ' is not supported
> >
> > Está parecendo q falta algum parâmetro, alguém saberia dizer ?
> >
> > Obrigado.
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
Java é portável? Não, Java é insuportável!

#!/usr/bin/perl
use perl;


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