[SP-pm] Capturar dados de sites

Eduardo Almeida eduardo at web2solutions.com.br
Thu May 9 12:32:08 PDT 2013


On 09/05/2013 16:05, Andre Carneiro wrote:
> Pode crer Álvaro! Valeu!
>
>
> 2013/5/9 Marcio Ferreira <marciodesouzaferreira em gmail.com 
> <mailto:marciodesouzaferreira em gmail.com>>
>
>     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 <alvaro.brasilia em gmail.com
>     <mailto:alvaro.brasilia em gmail.com>>
>
>         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
>         <andregarciacarneiro em gmail.com
>         <mailto:andregarciacarneiro em gmail.com>> 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: SaoPaulo-pm em pm.org
>         <mailto:SaoPaulo-pm em pm.org>
>          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: SaoPaulo-pm em pm.org
>     <mailto:SaoPaulo-pm em pm.org>
>      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: SaoPaulo-pm em pm.org
>   L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer


-- 
Eduardo Almeida - Software Engineer
eduardo em web2solutions.com.br - 27 3021-2430 / 27 9839 3755

*WEB2 Solutions* - Inovando, sempre!
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130509/3aa64783/attachment-0001.html>


More information about the SaoPaulo-pm mailing list