Git Product home page Git Product logo

Comments (17)

thiagodds avatar thiagodds commented on July 3, 2024 2

@matheusdalzot eu já fiz uma implementação desse tipo só que usando C#. Basicamente o que você precisa fazer é um GET na página que você quer e pegar todos os headers (incluindo VIEWSTATE)e cookies da página. É importante você olhar também quais são os dados enviados no form, em alguns casos é importante enviar mesmo os inputs que você não usa e são hidden. Uma vez com esses dados na mão você pode fazer o POST na mesma página que você fez o GET.

Eu fiz essa implementação justamente porque queria algo parecido com o que você quer. O projeto rodava em um App Service no Azure, como era tudo request HTTP e não usava o browser funcionava bem de boa.

Uma outra opção que você pode explorar e continuar usando o cei-crawler é rodar dentro de um container no dokcer. Dessa forma você consegue criar uma imagem que roda o chrome e hospedar nesses provedores de Cloud.

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Opa @Menighin consegui fazer aqui :D foi mais fácil do que pensei kkkkk

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Opa, boa! hehe
Então, na verdade os métodos que são chamados na mesma instancia do CEI utilizam o mesmo login, a não ser que vc chame o método close() entre as chamadas. Da uma olhada na documentação.

No meu app, pra resolver isso, eu criei um serviço que se certifica de usar a mesma instancia quando possivel. E caso a instancia fique idle por um tempo, ele a fecha para liberar memória. O código está aqui caso você queira olhar:
https://github.com/Menighin/stoincs/blob/master/src-electron/services/CeiCrawlerService.js

Chamar o método close é muito importante, caso contrário você pode ter problemas com tanto chromium aberto.

Abraço!

from cei-crawler.

ZotInfo avatar ZotInfo commented on July 3, 2024

Opa @Menighin sim hehe eu fiz dessa forma, utilizei a mesma instância do CeiCrawler para buscar os outros dados, e usei o close() após armazenar os dados nas variáveis hehe

Só que agora estou passando por problemas, hospedei o serviço no AppEngine do GCloud, porém ele não funciona sob demanda.

Saberia me dizer algum serviço que hospede o serviço e consiga lidar com demanda baixa de conexões simultâneas?

Preciso que ele comporte pelo menos 50 conexões ao mesmo tempo hehe

Fico agradecido

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Fala Matheus... Ou nunca precisei de algo assim... Ja tentou olhar no Heroku ou talvez algo free tier da AWS?

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Opa @Menighin pelas minhas pesquisas não detalha isso nos serviços deles, ou pelo menos eu não consegui identificar essa informação hehe

Estou verificando se consigo fazer essa parte dentro do app, a principio eu consegui efetuar o login através de postagens HTTP e enviando o Formulário junto ao URL, porém to com dificuldades agora pra validar os VIEWSTATE da tela de Negociações hehe
por algum motivo, não estou conseguindo recuperar o VIEWSTATE referente a consulta e tals

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Opa @thiagodds muito obrigado pelo seu comentário hehe eu fiz alguns testes com isso e realmente consegui ter um certo sucesso simulando as requisições via Url, peguei o form data que ele monta ao clicar em um botão e simulei enviando no próprio navegador, aparentemente funcionou, agora eu preciso testar de dentro da minha aplicação com diversas contas do CEI para ver se o resultado vai ser o mesmo para todas.

Mais uma vez obrigado por compartilhar a ideia

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Boa, a minha idéia inicial era nao usar o puppeteer nesse crawler, justamente pra limar essa dependencia do Puppeteer... Mas como tava dando muito trabalho e eu queria algo logo, fui por esse caminho... Mas ta nos planos de começar a tirar ele fora hehe

Sobre rodar o Puppeteer no Docker, parece ser bem tranquilo: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-in-docker

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Mas a questão agora que me surgiu, sem o Puppeteer ele consegue lidar com as conexões simultâneas?

Por exemplo, ele conseguiria fazer digamos 10 solicitações e lidar com as 10 simultaneamente?
Hoje o problema é que ele tenta lidar com as 10 e acho que uma acaba cancelando a outra, mas se for uma solicitação única ele se comporta perfeitamente.

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Matheus, vc tá usando a mesma instancia do cei-crawler pras 10 requisicoes? Imagino que se vc usar uma instancia diferente pra cada requisição deva funcionar

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Sim, a principio sim, o usuário passa o token para a API e a API cria a instancia e faz a consulta e devolve pro usuário o json, porém não faço ideia de como criar uma instância pra cada solicitação.

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Se vc esta fazendo new CeiCrawler() toda vez na sua requisicao, ele deveria estar criando um cara novo 🤔
Vou fazer uns testes locais aqui assim que possivel pra entender se esse ta sendo o comportamento mesmo

from cei-crawler.

matheusdalzot avatar matheusdalzot commented on July 3, 2024

Sim, talvez esse seja um problema do AppEngine do GCloud, apesar de cada requisição ser feita de uma máquina diferente.

Na teoria o GCloud deveria lidar com cada solicitação separadamente.
O serviço da API em si já deva funcionar como o esperado, apesar de eu ter testando usando o insomnia e fazer uma requisição por vez só, também acabei não testando solicitações em massa.

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

@matheusdalzot eu testei aqui localmente com esse código:

const crawl = (id) => {
    console.log(`Crawling ${id}...`)
    const ceiCrawler = new CeiCrawler('usuario', 'senha', { trace: true, puppeteerLaunch: { headless: false }});

    ceiCrawler.getWallet().then(res => {
        console.log(`Done Crawling ${id}: ${JSON.stringify(res)}`);
    })
}

for (let i = 0; i < 10; i++)
    crawl(i);

e realmente foi tranquilo... Spamou 10 janelas do chromium aqui, fez o crawling e printou os resultados...
Isso indica que não é problema pro crawler/puppeteer um cenário com diversas requisições desde que vc esteja criando uma instancia do cei pra cada requisicao... Uma nao deveria interferir com a outra... Isso deve de fato ser alguma particularidade do GCloud :/

Se der compartilha com a gente o seu Controller ou algo assim.. Talvez de uma iluminada..

Recomendo tb vc ou abrir uma issue no Puppeteer ou uma pergunta no StackOverflow...

from cei-crawler.

ZotInfo avatar ZotInfo commented on July 3, 2024

Opa @Menighin tudo beleza?

Sim deve ser algum problema na parte deles, talvez eles sejam limitados ou algo assim :/
Talvez o ambiente configurado lá não aceite esse tipo de serviço como deveria :/

Eu sinceramente gostaria muito de saber como configurar um ambiente que suporte múltiplas solicitações, pois essa API é justamente o que estou precisando, estou tentando fazer o sistema buscar diretamente do app, porém estou tendo dificuldades em ajustar os cookies e sessões, pois sempre que eu tento importar de dois aparelhos diferentes mas ao mesmo tempo, por algum motivo um anula o outro, mesmo o sistema de importação ficando separado em cada app sem acessar um servidor externo.

Meu controller está assim:

let ceiCrawler = new CeiCrawler(
          username,
          password,
          CRAWLER_OPTIONS
        );

        console.log('Buscando Carteiras');
        const wallets = await ceiCrawler.getWallet();
        console.log('Buscando Histórico');
        var transactions;
        if (!startDate && !endDate) {
          console.log(`Searching all stock transactions`);
          transactions = await ceiCrawler.getStockHistory();
        } else {
          console.log(
            `Searching stock transactions between ${startDate} and ${endDate}`
          );
          const start = new Date(String(startDate));
          const end = new Date(String(endDate));
          transactions = await ceiCrawler.getStockHistory(start, end);
        }
        console.log('Buscando Dividendos');
        const dividends = await ceiCrawler.getDividends();
        await ceiCrawler.close();

        console.log(`Data collected with success`);
        res.status(200).json({
          "wallet": wallets,
          "transactions": transactions,
          "dividends": dividends,
        });

from cei-crawler.

Menighin avatar Menighin commented on July 3, 2024

Hmmmmmm nao parece ter nada demais...
O que exatamente acontece quando vc faz multiplas requisicoes? Quais sao os retornos?

from cei-crawler.

ZotInfo avatar ZotInfo commented on July 3, 2024

@Menighin olha só na maioria dos casos acontecia esse problema:

A 2020-08-25T01:21:12.698254Z _______________________ Buscando Carteiras - Validando Informações _______________________ getWallet 
A 2020-08-25T01:21:12.698355Z Buscando Carteiras 
A 2020-08-25T01:21:13.361891Z Processing dividends data 
A 2020-08-25T01:21:13.839128Z Selecting institution 308 - CLEAR CORRETORA - GRUPO XP (308) 
A 2020-08-25T01:21:14.255454Z Logging at CEI... 
A 2020-08-25T01:21:15.741847Z Selecting account 959212 
A 2020-08-25T01:21:19.056056Z Processing wallet data 
A 2020-08-25T01:21:19.060601Z Error: Error: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed.
    at CDPSession.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:180:29)
    at ExecutionContext._evaluateInternal (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:107:44)
    at ExecutionContext.evaluateHandle (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:57:17)
    at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23)
    at Page.evaluateHandle (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:326:20)
    at Function._processStockWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:229:29)
    at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:150:47)
    at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16) 
A 2020-08-25T01:21:19.060636Z   -- ASYNC -- 
A 2020-08-25T01:21:19.060661Z     at Page.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.060682Z     at Function._processStockWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:229:40) 
A 2020-08-25T01:21:19.060701Z     at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:150:58) 
A 2020-08-25T01:21:19.060713Z     at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16) 
A 2020-08-25T01:21:19.064271Z (node:10) UnhandledPromiseRejectionWarning: Error: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed. 
A 2020-08-25T01:21:19.064311Z     at CDPSession.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:180:29) 
A 2020-08-25T01:21:19.064380Z     at ExecutionContext._evaluateInternal (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:107:44) 
A 2020-08-25T01:21:19.064393Z     at ExecutionContext.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:48:23) 
A 2020-08-25T01:21:19.064517Z     at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.064537Z     at DOMWorld.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:112:20) 
A 2020-08-25T01:21:19.064547Z   -- ASYNC -- 
A 2020-08-25T01:21:19.064559Z     at Frame.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.064569Z     at Page.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:860:43) 
A 2020-08-25T01:21:19.064581Z     at Page.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.064592Z     at Function.getWallet (/workspace/node_modules/cei-crawler/src/lib/WalletCrawler.js:141:38) 
A 2020-08-25T01:21:19.064601Z     at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:148:16) 
A 2020-08-25T01:21:19.064628Z (node:10) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3) 
A 2020-08-25T01:21:19.064643Z (node:10) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 
A 2020-08-25T01:21:19.151898Z Processing dividends data 
A 2020-08-25T01:21:19.155576Z Error: Error: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed.
    at CDPSession.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:180:29)
    at ExecutionContext._evaluateInternal (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:107:44)
    at ExecutionContext.evaluateHandle (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:57:17)
    at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23)
    at Page.evaluateHandle (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:326:20)
    at Function._processFutureEvents (/workspace/node_modules/cei-crawler/src/lib/DividendsCrawler.js:213:29)
    at Function.getDividends (/workspace/node_modules/cei-crawler/src/lib/DividendsCrawler.js:134:48)
    at CeiCrawler.getDividends (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:129:16) 
A 2020-08-25T01:21:19.155598Z   -- ASYNC -- 
A 2020-08-25T01:21:19.155610Z     at Page.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.155619Z     at Function._processFutureEvents (/workspace/node_modules/cei-crawler/src/lib/DividendsCrawler.js:213:40) 
A 2020-08-25T01:21:19.155628Z     at Function.getDividends (/workspace/node_modules/cei-crawler/src/lib/DividendsCrawler.js:134:59) 
A 2020-08-25T01:21:19.155636Z     at CeiCrawler.getDividends (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:129:16) 
A 2020-08-25T01:21:19.156163Z (node:10) UnhandledPromiseRejectionWarning: Error: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed. 
A 2020-08-25T01:21:19.156187Z     at CDPSession.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:180:29) 
A 2020-08-25T01:21:19.156199Z     at ExecutionContext._evaluateInternal (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:107:44) 
A 2020-08-25T01:21:19.156211Z     at ExecutionContext.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:48:23) 
A 2020-08-25T01:21:19.156221Z     at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.156231Z     at DOMWorld.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:112:20) 
A 2020-08-25T01:21:19.156241Z   -- ASYNC -- 
A 2020-08-25T01:21:19.156253Z     at Frame.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.156264Z     at Page.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:860:43) 
A 2020-08-25T01:21:19.156275Z     at Page.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.156286Z     at Function.getDividends (/workspace/node_modules/cei-crawler/src/lib/DividendsCrawler.js:125:38) 
A 2020-08-25T01:21:19.156295Z     at CeiCrawler.getDividends (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:129:16) 
A 2020-08-25T01:21:19.156322Z (node:10) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6) 
A 2020-08-25T01:21:19.158922Z Error: Error: WebSocket is not open: readyState 2 (CLOSING)
    at WebSocket.send (/workspace/node_modules/ws/lib/websocket.js:329:19)
    at WebSocketTransport.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/WebSocketTransport.js:60:14)
    at Connection._rawSend (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:86:21)
    at CDPSession.send (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Connection.js:181:33)
    at ExecutionContext._evaluateInternal (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:107:44)
    at ExecutionContext.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/ExecutionContext.js:48:23)
    at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:54:42)
    at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23)
    at ElementHandle.focus (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:354:16) 
A 2020-08-25T01:21:19.158949Z   -- ASYNC -- 
A 2020-08-25T01:21:19.158969Z     at ExecutionContext.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.158987Z     at ElementHandle.evaluate (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:54:42) 
A 2020-08-25T01:21:19.159005Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159027Z     at ElementHandle.focus (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:354:16) 
A 2020-08-25T01:21:19.159041Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159053Z     at ElementHandle.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:362:16) 
A 2020-08-25T01:21:19.159065Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159079Z     at DOMWorld.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:422:18) 
A 2020-08-25T01:21:19.159092Z     at runMicrotasks (<anonymous>) 
A 2020-08-25T01:21:19.159106Z     at runNextTicks (internal/process/task_queues.js:62:5) 
A 2020-08-25T01:21:19.159119Z   -- ASYNC -- 
A 2020-08-25T01:21:19.159134Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.159149Z     at ElementHandle.focus (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:354:16) 
A 2020-08-25T01:21:19.159170Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159184Z     at ElementHandle.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:362:16) 
A 2020-08-25T01:21:19.159198Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159214Z     at DOMWorld.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:422:18) 
A 2020-08-25T01:21:19.159239Z     at runMicrotasks (<anonymous>) 
A 2020-08-25T01:21:19.159255Z     at runNextTicks (internal/process/task_queues.js:62:5) 
A 2020-08-25T01:21:19.159268Z     at listOnTimeout (internal/timers.js:518:9) 
A 2020-08-25T01:21:19.159284Z     at processTimers (internal/timers.js:492:7) 
A 2020-08-25T01:21:19.159292Z   -- ASYNC -- 
A 2020-08-25T01:21:19.159301Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.159310Z     at ElementHandle.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/JSHandle.js:362:16) 
A 2020-08-25T01:21:19.159318Z     at ElementHandle.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:112:23) 
A 2020-08-25T01:21:19.159327Z     at DOMWorld.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/DOMWorld.js:422:18) 
A 2020-08-25T01:21:19.159337Z     at runMicrotasks (<anonymous>) 
A 2020-08-25T01:21:19.159351Z     at runNextTicks (internal/process/task_queues.js:62:5) 
A 2020-08-25T01:21:19.159365Z     at listOnTimeout (internal/timers.js:518:9) 
A 2020-08-25T01:21:19.159380Z     at processTimers (internal/timers.js:492:7) 
A 2020-08-25T01:21:19.159396Z     at CeiCrawler._login (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:63:9) 
A 2020-08-25T01:21:19.159412Z     at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:147:9) 
A 2020-08-25T01:21:19.159426Z   -- ASYNC -- 
A 2020-08-25T01:21:19.159441Z     at Frame.<anonymous> (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/helper.js:111:15) 
A 2020-08-25T01:21:19.159450Z     at Page.type (/workspace/node_modules/cei-crawler/node_modules/puppeteer/lib/Page.js:1103:29) 
A 2020-08-25T01:21:19.159459Z     at CeiCrawler._login (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:63:26) 
A 2020-08-25T01:21:19.159466Z     at runMicrotasks (<anonymous>) 
A 2020-08-25T01:21:19.159474Z     at runNextTicks (internal/process/task_queues.js:62:5) 
A 2020-08-25T01:21:19.159481Z     at listOnTimeout (internal/timers.js:518:9) 
A 2020-08-25T01:21:19.159489Z     at processTimers (internal/timers.js:492:7) 
A 2020-08-25T01:21:19.159506Z     at CeiCrawler.getWallet (/workspace/node_modules/cei-crawler/src/lib/CeiCrawler.js:147:9) 
A 2020-08-25T01:21:37.336504Z GET 500 290 B 22,1 s Dart/2.8 (dart:io) /wallet?token=ODg1Mzg1MjQxMDA6QVJDQU5KTzU3OSM= GET 500 290 B 22,1 s Dart/2.8 (dart:io) 5f4467a100ff05227854bd5e110001697e6170692d353030393038373230363537343335313930362d3636363731390001323032303038323474323230383332000100
I 2020-08-25T01:21:37.341005Z GET 404 441 B 3,5 s Unknown /_ah/start GET 404 441 B 3,5 s Unknown 5f4467a100ff05340dab564d0e0001697e6170692d353030393038373230363537343335313930362d3636363731390001323032303038323474323230383332000100
A 2020-08-25T01:21:40.509603Z GET 200 773 B 117,7 s Dart/2.8 (dart:io) /wallet?token=MDE0OTg3MzU2NTc6TjBnc2IzJCQ= GET 200 773 B 117,7 s Dart/2.8 (dart:io) 5f4467a400ff07c6a32d936c440001697e6170692d353030393038373230363537343335313930362d3636363731390001323032303038323474323230383332000100

from cei-crawler.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.