lucasrcezimbra / pyitau

Unofficial client to access your Itaú bank data
https://pypi.org/project/pyitau/
GNU Lesser General Public License v2.1
51 stars 15 forks source link

Adicionar suporte para contas Pessoa Jurídica #29

Open tiagosmx opened 4 years ago

tiagosmx commented 4 years ago

Muito show sua iniciativa de automatizar o acesso ao Itaú, tou aprendendo com seu projeto, você fez um hack bem forte pra chegar até aqui.

Tenho um projeto particular usando o Selenium (o que deixa o software bem mais pesado) e preciso rodar tudo em uma máquina com o módulo warsaw de segurança instalado.

A autenticação de contas pessoa jurídica aparentemente é diferente das contas de pessoa física. Ao tentar autenticar ocorre o seguinte erro:

AttributeError                            Traceback (most recent call last)
<ipython-input-6-20c092e346e8> in <module>
----> 1 it.authenticate()

<ipython-input-1-7fb82abd6d05> in authenticate(self)
     31         self._authenticate0()
     32         self._authenticate1()
---> 33         self._authenticate2()
     34         self._authenticate3()
     35         self._authenticate4()

<ipython-input-1-7fb82abd6d05> in _authenticate2(self)
    113         self._op2 = re.search("\$SECAPDK.uidap\(\'(.*?)\'\);", response.text).group(1)
    114         self._op3 = re.search("\$SECBCATCH.uidap\(\'(.*)\'\);", response.text).group(1)
--> 115         self._op4 = re.search('router.performRequest\("(.*?)", ', response.text).group(1)
    116         self._flow_id = re.search("var flowId=\'(.*)\';", response.text).group(1)
    117         self._client_id = re.search("var clientId=\'(.*?)\';", response.text).group(1)

AttributeError: 'NoneType' object has no attribute 'group'
lucasrcezimbra commented 4 years ago

Legal @tiagosmx que gostou do projeto.

No momento não tenho tempo para implementar o suporte a PJ.

Acredito que seja uma feature interessante para o projeto. Se alguém quiser trabalhar nela e precisar de ajuda pode comentar aqui ou entrar em contato comigo.

Sobre o warsaw, alguém me comentou que se passar os headers simulando que o OS é um BSD não será necessário te-lo instalado, acho que vale o teste. Se funcionar comenta aí pra nós.

tiagosmx commented 4 years ago

Aee Lucas! To super disposto a fazer o acesso PJ e contribuir aqui no projeto.

Preciso de uma mão pra aprender a analisar as requests HTTP e montar as respostas certas na ordem certa. Poderia me ajudar nessa? Vou te mandar um e-mail pra gente combinar melhor.

Sobre o User-Agent do FreeBSD: funcionava um tempo atrás, mas hoje em dia não dá... Cheguei a testar nos dois momentos. Possivelmente o pessoal do Itaú viu o blog com essa informação. Atualmente só consigo com o módulo do warsaw mesmo. Parece que as políticas de acesso pras contas PJ são mais rígidas.