Pode crer Álvaro! Valeu!
2013/5/9 Marcio Ferreira <[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 > > > 2013/5/9 Alvaro Luiz <[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() >> >> >> ... >> >> Segue aqui como exemplo um rascunho de parte de um modulo que estou >> criando para interagir como um sistema em 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é 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] >> > escreveu: >> >>> >>> Se o site tá em ASP.NET não esqueça de incluir o token gigantesco na >>> requisição, que os sites feitos em 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] >> 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] > 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
