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
