On 09/05/2013 16:05, Andre Carneiro wrote:
Pode crer Álvaro! Valeu!


2013/5/9 Marcio Ferreira <[email protected] <mailto:[email protected]>>

    Hmm, se a coisa estiver tensa com o javascript, tente usar o
    https://github.com/n1k0/casperjs
    CasperJS++



    []s,

    Marcio Ferreira
    skype: marcio.ferreir4
    (21) 8365-7768 <tel:%2821%29%208365-7768>


    2013/5/9 Alvaro Luiz <[email protected]
    <mailto:[email protected]>>

        Com o WWW::Mechanize é possível sim, depois de muito quebrar a
        cabeça consegui solucionar da seguinte forma:

        ....

        my $name =
        'ctl00$ctl00$MasterConteudo$Conteudo$LoginSistema$UserName';




        my $pass =
        'ctl00$ctl00$MasterConteudo$Conteudo$LoginSistema$Password';




        my $button =
        'ctl00$ctl00$MasterConteudo$Conteudo$LoginSistema$LoginButton';




        my $viewstate = ($mech->find_all_inputs( type => 'hidden',
        name => '__VIEWSTATE' ))[0]->value;




        my $validation = ($mech->find_all_inputs( type => 'hidden',
        name => '__EVENTVALIDATION' ))[0]->value;




        #loga no painel
        $mech->field($name => $cpfcnpj);




        $mech->field($pass => $senha);




        $mech->field(__VIEWSTATE => $viewstate);




        $mech->field(__EVENTVALIDATION => $validation);




        $mech->field(__VIEWSTATEENCRYPTED => '');




        $mech->click(); #Não funcionou nem com post() nem submit()
        apenas simulando click()

Provavelmente a url final nao aceitou POST porque exige algum tipo de validação de session que deve ocorrer ná página onde se encontra o tal botão que vc acionou via mech




        ...

        Segue aqui como exemplo um rascunho de parte de um modulo que
        estou criando para interagir como um sistema em ASP.NET
        <http://ASP.NET> nesse git bagunçado e abandonado ai esta
        apenas a parte de login, mais sera suficiente para dar uma luz
        ao Marcio.

        
https://github.com/AlvaroBrasilia/WWW-NFSe-Guarapari/blob/master/WWW-NFSe-Guarapari-0.02/lib/WWW/NFSe/Guarapari.pm

        Interagir com .NET é bem chato, algumas coisas não funcionam
        bem usando WWW::Mechanize pois ele ainda tem algumas
        limitações a interação com Javascript.

        Uma alternativa que parece ser ideal para interagir com
        paginas asp.net <http://asp.net> é
        o HTML::TreeBuilderX::ASP_NET mas ainda não testei pois a
        forma que  fiz no exemplo acima atendeu minhas necessidades.

        Ignorem a bagunça e possíveis erros, estou apenas engatinhando
        nesse mundo Perl.

        Att.

        Álvaro Luiz


        Em 9 de maio de 2013 13:54, Andre Carneiro
        <[email protected]
        <mailto:[email protected]>> escreveu:


            Se o site tá em ASP.NET <http://ASP.NET> não esqueça de
            incluir o token gigantesco na requisição, que os sites
            feitos em ASP.NET <http://ASP.NET> normalmente geram
            automaticamente através de componentes .NET. Para
            facilitar utilize algum sniffer de http como Burp,
            wireshark ou mesmo o bom e velho Data Tamper(nem sei se
            existe isso ainda). Com isso poderás ver tudo o que está
            rolando na requisição desde cabeçalhos http até as
            variáveis que deverão ser incluídas na requisição(acho
            mais prático).

            Não sei se dá para fazer  isso automaticamente com
            WWW::Mechanize, acredito que não. De qualquer forma, você
            sempre pode escolher o 'caminho mais dolorido', abrindo o
            código da página, e checar as variáveis com 'os zóio'. Eu
            não recomendo, pois se tiver Javascript envolvido com
            requisição(o que não é difícil hoje em dia), vai ter mais
            trabalho para montar a requisição com tudo o que ela precisa.

            Sinceramente recomendo que você analise tudo com um
            sniffer ou algo parecido para só por desencargo...


        =begin disclaimer
           Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
         SaoPaulo-pm mailing list: [email protected]
        <mailto:[email protected]>
         L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
        =end disclaimer



    =begin disclaimer
       Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
     SaoPaulo-pm mailing list: [email protected]
    <mailto:[email protected]>
     L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
    =end disclaimer




--
André Garcia Carneiro
Software Engineer
(11)982907780


=begin disclaimer
    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: [email protected]
  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer


--
Eduardo Almeida - Software Engineer
[email protected] - 27 3021-2430 / 27 9839 3755

*WEB2 Solutions* - Inovando, sempre!
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: [email protected]
 L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a