[SP-pm] Capturar dados de sites

Andre Carneiro andregarciacarneiro at gmail.com
Thu May 9 12:05:57 PDT 2013


Pode crer Álvaro! Valeu!


2013/5/9 Marcio Ferreira <marciodesouzaferreira at 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
>
>
> 2013/5/9 Alvaro Luiz <alvaro.brasilia at 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()
>>
>>
>> ...
>>
>> 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 <andregarciacarneiro at gmail.com
>> > 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: SaoPaulo-pm at 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 at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130509/f352987c/attachment.html>


More information about the SaoPaulo-pm mailing list