[Cascavel-pm] WWW::Mechanize

Solli Honorio shonorio em gmail.com
Quinta Fevereiro 8 13:45:19 PST 2007


Um pouco atrasado, mas ainda útil. Victor, este tipo de código é o sonho de
todos os administradore de rede sério e preocudos com o 'gerênciamento de
mudanças' do ambiente computacional. Se for possível disponibilizar este
códigos eu tenho todo interesse.

Abraços,

Solli


On 2/3/07, vict0r <vgdias em gmail.com> wrote:
>
> 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;
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070208/a6c65edb/attachment.html 


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