Closed leogregianin closed 3 years ago
Fala @leogregianin você também teve problema com too many requests ? Acabou ficando 3 dias sem conseguir acessar sua conta ? 😢
Você chegou a ter alguma melhora incluindo esses headers ? Vou tentar questionar eles pra ver se tem mais alguma informação sobre esse bloqueio que estamos tendo. Talvez seja a velocidade entre as requisições.
Tudo bem @andreroggeri. Eu fiquei um tempo bloqueado por causa das muitas requisições. 😢 Mas tive uma melhora significativa usando os headers abaixo, talvez por ser os mesmos headers gerados pelo próprio site deles.
headers = {
'Content-Type': 'application/json;charset=UTF-8',
'X-Correlation-Id': 'WEB-APP.pewW9',
'User-Agent': 'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
'Accept': 'application/json, text/plain, */*',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection': 'keep-alive',
'DNT': '1',
'Host': 'prod-s0-webapp-proxy.nubank.com.br',
'Origin': 'https://app.nubank.com.br',
'Referer': 'https://app.nubank.com.br/'
Estou me aventurando além do meu conhecimento falando sobre requests.post, mas aqui vai:
Fui bloqueado por 72 horas umas 80 horas atrás, tendo tomado bastante cuidado com o número de requests e a frequência deles, o que me faz achar que o bloqueio é relacionado a abrir nova sessão (método authenticate()) sem ter fechado a anterior. O servidor do NuBank provavelmente ainda está esperando contato em um session_id e recebe pedido pra abrir uma nova sessão para o mesmo device_id. Possivelmente algo relacionado a isso
Estive analisando as comunicações num arquivo HAR, mas estou além do meu conhecimento. Alguém pode investigar mais?
@Sroccchi
Duas dúvidas:
Quando fui bloqueado eu tinha feito no máximo 6 requisições, espalhadas em 3 logins, e mais ou menos meia hora ( authenticate() com certeza não foi chamado duas vezes em um intervalo menor que 5 minutos). Estava fazendo alterações nos métodos para separar os que fazem requisições, para poder chamar qualquer método livremente, e apenas fazer novas requisições ao servidor chamando uma função update() ou similar.
Galera, acho que descobri o porque ocorre o bloqueio, fiz o teste aqui e agora esta funcionando. Eu percebi que o bloqueio acontecia porque eu estava tentando logar varias vezes na mesma sessão, com o mesmo IP, entao acho que o Nubank entendia que estava sendo atacado. Para resolver isso é simples, é só logar apenas uma vez por sessao. Uma vez logado, voce pode fazer as outras requisições normalmente!
Para melhorar o acesso e diminuir o bloqueio da API do Nubank com o retorno Too many requests (429) poderia incluir mais propriedades dos headers. Os headers abaixo são do acesso pelo navegador permanecendo somente o user-agent.