Comments (35)
@Menighin, fiz o teste com o headless: false, aparentemente nada anormal, segue o identificador do botão Consultar.
Irei testar com a versão da develop pra ver
from cei-crawler.
Fala @matheusdalzot esse login failed no App Engine nao faço idéia velho =s
Vo dar uma revisada no código de login mais a noite pra ver se acho algum problema ou se pelo menos coloco mais alguns logs pra tentar identificar o problema... Como estão seus parametros do Crawler?
Pra testar a versao de develop, basta clonar ela e substituir os arquivos dela na sua pasta node_modules
from cei-crawler.
Opa, @Menighin , ainda não consegui fazer os testes, tô bem apertado com as coisas do trampo esses dias
@ZotInfo valeu por testar e avisar.
from cei-crawler.
Aqui funcionou certinho testando no localhost
ainda não dei deploy no AppEngine, vou testar mais tarde.
EDIT
Aparentemente está ok agora
from cei-crawler.
Bom, amanhã farei isso então. Vou aproveitar e deixar um endpoint de backup com uma versão estável pra não me impactar no desenvolvimento.
Valeu, @ZotInfo!
from cei-crawler.
@matheuspcunha acabei de identificar que mesmo com o waitForSelector
explicito antes de clicar no botao de submeter o formulario no CEI ele ainda falhava as vezes com esse erro de "Node not visible...".
Lancei a versão 1.3.2
onde coloquei explicitamente pra esperar 100ms antes de clicar e nao consegui mais reproduzir problema, indicando que pode estar resolvido.
Da uma testada nessa versao antes de voltar pra 0.3.0
pfv
from cei-crawler.
@Menighin a versão 1.3.2 funcionou! 🙌🏼
Obrigado!
from cei-crawler.
@matheuspcunha opa!
Essa linha é quando o crawler vai tentar clicar em Pesquisar
pra trazer as informações da Carteira. O que o erro ta falando é que esse botão não esta visivel ou nao existe.
Você consegue rodar com headless: false
pra ver se tem algo estranho rolando no seu CEI?
from cei-crawler.
Opa cara, estou passando pelo mesmo problema na mesma corretora, 90 - EASYNVEST
Alguma solução encontrada?
Detalhe, no modo de debug no localhost:3333/wallet funciona de boas.
O erro acontece quando eu faço o deploy para o GCloud AppEngine
A 2020-08-12T20:11:12.196613Z Searching wallet - Current date
A 2020-08-12T20:11:15.238824Z Logging at CEI...
A 2020-08-12T20:11:25.625410Z Selecting institution 1099 - INTER DTVM LTDA (1099)
A 2020-08-12T20:11:26.138221Z Selecting account 7517871
A 2020-08-12T20:11:26.729711Z Processing wallet data
A 2020-08-12T20:11:26.737603Z Selecting institution 90 - EASYNVEST - TITULO CV S.A. (90)
A 2020-08-12T20:11:26.937414Z Selecting account 7112668
A 2020-08-12T20:11:27.137706Z Error: Error: Node is either not visible or not an HTMLElement
at ElementHandle._clickablePoint (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:216:13)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at ElementHandle.click (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:282:20)
at DOMWorld.click (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:367:5)
at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16)
A 2020-08-12T20:11:27.137728Z -- ASYNC --
A 2020-08-12T20:11:27.137742Z at ElementHandle. (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15)
A 2020-08-12T20:11:27.137751Z at DOMWorld.click (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:367:18)
A 2020-08-12T20:11:27.137759Z at processTicksAndRejections (internal/process/task_queues.js:97:5)
A 2020-08-12T20:11:27.137769Z at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
A 2020-08-12T20:11:27.137778Z at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16)
A 2020-08-12T20:11:27.137785Z -- ASYNC --
A 2020-08-12T20:11:27.137794Z at Frame. (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15)
A 2020-08-12T20:11:27.137802Z at Page.click (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:1064:29)
A 2020-08-12T20:11:27.137810Z at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:28)
A 2020-08-12T20:11:27.137818Z at processTicksAndRejections (internal/process/task_queues.js:97:5)
A 2020-08-12T20:11:27.137826Z at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16)
from cei-crawler.
@matheusdalzot você está na ultima versao do crawler?
Vocês conseguem rodar com headless: false
e pegar o identificador do botao de pesquisar na pagina da carteira? O que o crawler utiliza é esse: #ctl00_ContentPlaceHolder1_btnConsultar
De qualquer forma, li algumas issues do Puppeteer e parece um paliativo seria esperar por esse seletor antes de mandar clicar... Implementei isso na develop
, conseguem testar com ela pra ver se deu resultado?
from cei-crawler.
Opa João, sou o @matheusdalzot
Atualizei o cei-crawler para a versão 1.2.0 que eu li que você tinha ajustado algumas coisas, e após fazer isso, as vezes ele funcionava na versão localhost e as vezes deu 'Login failed'
E dai eu notei que deu esse problema ali quando fui testar a API no AppEngine e retornou erro 500, ai fui conferir os logs e tinha dado aquele erro.
from cei-crawler.
Hummmm que estranho...
A 1.2.0 eu na verdade voltei versao do puppeteer e suas configurações pras primeiras versoes, após as issues do @matheuspcunha
Os problemas de LOGIN FAILED
é possivel, se pa provavel, que é oscilação do CEI.
Agora esse problema aí de Node is either not visible...
é mto estrnaho... É só nessa tela?
from cei-crawler.
Isso acontece nas telas de:
- Carteiras de Ativos
- Proventos
- Negociação de Ativos
from cei-crawler.
Menos mal, rs
Eu coloquei o possivel fix só na tela da Carteira
from cei-crawler.
@matheuspcunha o StockHistoryCrawler tava unsafe pra contas vazias, de fato... Coloquei um check na develop
que nao deve mais gerar esse erro aí... Quando der testa pfv
from cei-crawler.
Opa @Menighin como faço pra testar na versão develop
?
Hoje vou testar dai
from cei-crawler.
Só pra atualizar, testei agora rodando a mesma versão de antes, 1.2.0 no servidor localhost:3333 e funcionou, logou normal e retornou as informações.
Mas rodando a mesma versão na API do AppEngine ele me retornou 'Login Failed
'
A 2020-08-13T11:07:32.239914Z Error: CeiCrawlerError: Login falhou
undefined
A 2020-08-13T11:07:32.239954Z at /workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:92:23
A 2020-08-13T11:07:32.239967Z at CeiCrawler._login (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:68:9)
A 2020-08-13T11:07:32.240Z at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:147:9) {
A 2020-08-13T11:07:32.240009Z type: 'LOGIN_FAILED'
A 2020-08-13T11:07:32.240019Z }
EDIT
Agora teste novamente na API do AppEngine e retornou o mesmo erro antes.
A 2020-08-13T11:18:57.843956Z Logging at CEI...
A 2020-08-13T11:19:19.679211Z Selecting institution 1099 - INTER DTVM LTDA (1099)
A 2020-08-13T11:19:20.080118Z Selecting account 7517871
A 2020-08-13T11:19:21.233928Z Error: Error: Node is either not visible or not an HTMLElement
at ElementHandle._clickablePoint (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:311:19)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at ElementHandle.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:372:26)
at DOMWorld.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:274:9)
at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:130:16)
{
insertId: "5f3521b9000391c8cbff99fa"
labels: {…}
logName: "projects/api-5009087206574351906-666719/logs/stdout"
receiveTimestamp: "2020-08-13T11:19:21.345549553Z"
resource: {…}
textPayload: "Error: Error: Node is either not visible or not an HTMLElement
at ElementHandle._clickablePoint (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:311:19)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at ElementHandle.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:372:26)
at DOMWorld.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:274:9)
at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:130:16)"
timestamp: "2020-08-13T11:19:21.233928Z"
}
EDIT 2
Identifiquei outro erro, talvez seja sobre a mesma coisa, mas com mensagem diferente.
A 2020-08-13T11:37:41.384888Z Logging at CEI...
A 2020-08-13T11:37:54.385960Z Selecting institution 1099 - INTER DTVM LTDA (1099)
A 2020-08-13T11:37:54.586479Z Selecting account 7517871
A 2020-08-13T11:37:56.044468Z Error: Error: Node is detached from document
at ElementHandle._scrollIntoViewIfNeeded (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:299:19)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at ElementHandle.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:371:9)
at DOMWorld.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:274:9)
at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:130:16)
{
insertId: "5f3526140000adb4ce7db4eb"
labels: {…}
logName: "projects/api-5009087206574351906-666719/logs/stdout"
receiveTimestamp: "2020-08-13T11:37:56.051704617Z"
resource: {…}
textPayload: "Error: Error: Node is detached from document
at ElementHandle._scrollIntoViewIfNeeded (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:299:19)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at ElementHandle.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/JSHandle.js:371:9)
at DOMWorld.click (/workspace/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:274:9)
at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:126:17)
at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:130:16)"
timestamp: "2020-08-13T11:37:56.044468Z"
}
from cei-crawler.
@Menighin mano, baixei o cei-crawler aqui direto do github e substitui como você falou, e acredita só haha
voltou a funcionar como um passe de mágica, mas não está estável aparentemente.
Funcionou 1 vez no /wallet e 1 vez no /transactions e dai agora parou de funcionar de novo auhauha vou tentar ver se eu consigo identificar algo e talvez corrigir, mas isso só pela noite que agora estou no trabalho também
from cei-crawler.
@Menighin e @matheuspcunha depois que voltei a versão 0.3.0
do cei-crawler
o sistema voltou a funcionar como uma beleza.
from cei-crawler.
Ou também to agarrado esses dias... Mas assim que possivel do uma olhada nas diferenças dessas versoes entao... Teoricamente nao teria nada demais... Muito estranho...
@matheusdalzot qndo vc disse que funcionou o /wallet e depois parou, foi erro de login ou foi esse do Node is either not visible...
?
Consegue me passar como vc tá construindo o seu objeto CeiCrawler
tanto na versao 0.3.0 quanto na 1.2.0?
from cei-crawler.
Opa @Menighin sim ele está dando o erro Node is....
e as vezes alguns outros erros variados.
Voltando para a 0.3.0 funciona normal, as vezes ele da alguns erros no login e timeout mas funciona bem.
Estou usando essas opções no CrawlerOptions
const CRAWLER_OPTIONS = {
puppeteerLaunch: {
args: [
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-dev-shm-usage",
"--single-process",
],
headless: true, // Isso faz mostrar a tela para debug
slowMo: 100
},
trace: true,
navigationTimeout: 150000
};
E assim estou criando o objeto ceiCrawler:
let ceiCrawler = new CeiCrawler(
username,
password,
CRAWLER_OPTIONS
);
from cei-crawler.
@matheusdalzot @matheuspcunha eu abri os códigos LADO A LADO hahaha
Não existe diferença de código (além das novas funcionalidades das ultimas versoes). Mas percebi que o puppeteer ainda estava em versao diferente. A 0.3.0
utiliza a versao 2.0.0
.
Commitei na develop, consegue testar novamente por favor? Se nao funcionar eu desisto haha
from cei-crawler.
Opa @Menighin vou testar assim que possível.
Obrigado hehe
from cei-crawler.
Eu publiquei a versaºo 1.3.0 com esses rollbacks
Vcs conseguindo testar e funcionando eu fecho aqui 👍
from cei-crawler.
Opa @Menighin vou testar agora, já posto aqui os resultados.
from cei-crawler.
Pessoal eu vou fechar aqui entao... Vou manter o puppeteer do crawler nessa versao e pa...
Qualquer coisa vcs abrem denovo pfv.
E obrigado pela ajuda e os feedbacks 👍 👍 👍 👍
from cei-crawler.
@matheusdalzot você conseguiu utilizar a versão no AppEngine? Subi pra lá e ta dando o erro ainda, porém localhost funciona bala
from cei-crawler.
Opa @matheuspcunha sim está funcionando aqui, qual erro está dando pra ti? Você atualizou o cei-crawler
pra versão 1.3.0
?
Eu só parei de rodar o serviço por que estava gerando muito custo hehe por esse lado o GCloud é meio ambicioso e o limite free é bem baixo, seu objetivo com a api é pra uso pessoal?
Se sim ele funciona muito bem, caso contrário prepara o bolso kkkkk
from cei-crawler.
@ZotInfo Isso mesmo, atualizei pra 1.3.0, esta dando Error: Node is either not visible or not an HTMLElement 😔
Poxa... estou utilizando para meu TCC, por enquanto só eu estou utilizando para desenvolvimento e testes, mas futuramente quero publicar o app para o publico e nesse caso terei que pensar em outra alternativa então
from cei-crawler.
Estranho, após eu ter atualizado para a versão 1.3.0
ele funcionou bem aqui, tanto local quanto no AppEngine.
Você fez o deploy como? Direto no AppEngine?
from cei-crawler.
@ZotInfo isso, direto da minha máquina usando o comando gcloud app deploy
, como de costume. Não sei mais o que fazer aqui pra solucionar, inclusive atualizei pra versão a cima 1.3.1 e nada 😕
from cei-crawler.
@matheuspcunha quando eu enfrentei esse problema a primeira vez, a minha solução temporária foi voltar para a versão 0.3.0
Logo após o @Menighin atualizou pra 1.3.0 e funcionou pra mim
Tenta voltar sua versão para a 0.3.0 pra testar
from cei-crawler.
@matheuspcunha quando conseguir testar na 0.3.0
avisa aí...
Vai ser muito estranho se funcionar pq nao tem nenhuma diferença entre versões nem nada =s
Por um acaso o gcloud não ta cacheando essas libs nao? Seria estranho se tivesse mas vai que...
from cei-crawler.
Opa @Menighin, beleza!
Farei o teste e te aviso aqui em breve
from cei-crawler.
Opa bom saber vou tentar jogar essa nova versão no AppEngine pra ver o comportamento também muito obrigado
from cei-crawler.
Related Issues (20)
- Problemas com acesso por conta de Captcha do CEI HOT 15
- Quantidade de acesso HOT 4
- Extrair dados do Tesouro Extrato Analítico e Extrato BM&FBOVESPA HOT 3
- Refresh dos cookies HOT 4
- Recaptcha HOT 1
- QR code doação HOT 1
- StockHistory missing HOT 2
- Não realiza o login e não da exception HOT 2
- StockHistory - É possível pegar de todas instituições? HOT 1
- valor errado na doc HOT 1
- Conta em uma corretora com mais de uma carteira HOT 1
- Recebendo erro ao loggar no CEI HOT 3
- Extrato CETIP HOT 4
- Adicionar suporte a split de ações HOT 3
- Nova area logada do CEI HOT 6
- Erro de dependência: puppeteer e Chromium HOT 2
- Atualização de URL em LastExecutionCrawler HOT 3
- TypeError: Cannot read properties of undefined (reading 'data') HOT 2
- Problema ao usar user-resolve
- Identificação dos bancos
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cei-crawler.