Omesmo Posted October 11, 2020 Share Posted October 11, 2020 pessoal ao que parece para incluir a super 7 a caixa modificou "bagunçou" os arquivos json bem com isso meus atualizadores pararam de funcionar , eu prefiro o json pq assim que eles lançam no site o resultado se pode usar, já os arquivos zip podem ficar dias sem atualizar uma pergunta é, será que eles vão voltar a mexer nisso ou como está funcionando vão deixar do jeito que está? bem eu nem ia mexer nisso mas essa noite perdi o sono por causa dos mosquitos e acabei montando uma função para facilitar a construção de atualizadores procurando palavras 2 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 12, 2020 Author Share Posted October 12, 2020 como eu tinha falado, a caixa bagunçou mas tbm padronizou o json falo que bagunçou pq tem um monte de dados de times nos arquivos tipo da mega , super7 entre outras , tem uma ordem bagunçada e caracteres desnecessários soltos padrão usado "tipoJogo"= nome da loteria "numero" = numero do sorteio "dataApuracao"= "dezenasSorteadasOrdemSorteio"= "dataProximoConcurso"= "valorEstimadoProximoConcurso"= "nomeTimeCoracaoMesSorte" = serve para o time na time mania ou mes do dia de sorte , pq não nomearam como BolaExtra? Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 12, 2020 Author Share Posted October 12, 2020 "listaRateioPremio"= mostra todo o rateio bem com isso fica facil montar um atualizador ou pegar apenas o ultimo resultado de qualquer loteria apenas trocando o link eu mesmo montei uma função simples que sem precisar de ferramenta json pega e limpa esses dados , até implementei na planilha da super7 para testar pelo arquivo zip é bem mais rapido, mas fica aquela duvida se eles vão atualizar rapido claro que não serve para pegar centenas de resultados, nesse caso o certo é usar o zip primeiro ou pegar de outra fonte para ir atualizando pelo json Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 13, 2020 Author Share Posted October 13, 2020 bem novo atualizador funcionando pelo menos até a caixa mexer novamente , mas espero que eles façam uma limpa para tirar aquele monte de informação sobre times e campeonatos nada a ver Quote Link to comment Share on other sites More sharing options...
Rany Posted October 15, 2020 Share Posted October 15, 2020 Só tive coragem de consertar o meu hoje, na prática não mudou muito, eles meio que deixaram o json genérico, servindo de base para todos as loterias deles... Dos dados que pego, a maior mudança foram os números dos sorteios "dezenasSorteadasOrdemSorteio", que ficaram em forma de array. Abraços. Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 16, 2020 Author Share Posted October 16, 2020 22 horas atrás, Rany disse: eles meio que deixaram o json genérico, servindo de base para todos as loterias deles... acho que pela presa de mostrar o resultado da super 7bagunçaram um pouco , se vc ver tem um monte de dados sobre futebol no arquivo da mega por exemplo ele poderiam ter colocado palavras chaves melhores que poderiam servir para loterias futuras tipo "nomeTimeCoracaoMesSorte" poderia se chamar "BolasExtras"[sorteio:"01",apresentaçao:"janeiro"] para a time,[ sorteio: "02",apresentaçao:"america/mg"] para coisas de times poderia ter colocado uma campo extra como fizeram com o rateio os campos não utilizáveis só colocar null e assim tbm colocar uma ordem mais amigavel nos dados mas ficou melhor agora antes cada loteria tinha uma palavra chave diferente eu só montei a função mas não apliquei na planilha ainda, só testei na da super 7 e testei o retorno dos dados das outras colocando um numero de sorteio e mandando atualizar até o ultimo, até da federal ficou legal antes era totalmente diferente a forma de pegar os dados Quote Link to comment Share on other sites More sharing options...
Rany Posted October 16, 2020 Share Posted October 16, 2020 (edited) @Omesmoconcordo, poderiam fazer muito melhor... Na verdade tudo poderia ser melhor, nem parece que pertecente a uma das maiores instutuições financeiras do pais. Abraços. Edited October 16, 2020 by Rany 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 16, 2020 Author Share Posted October 16, 2020 3 horas atrás, Rany disse: poderiam fazer muito melhor... Na verdade tudo poderia ser melhor, nem parece que pertecente a uma das maiores instutuições financeiras do pais. realmente, até o site é uma droga, parece que não tem cotrole tecnico de qualidade qual a estrategia vc usou? eu montei uma função busca palavra bem simples mas se mostrou bem funcional até para pegar dados de html pq de qualquer forma a gente tem que saber pelo que procurar Quote Link to comment Share on other sites More sharing options...
Rany Posted October 17, 2020 Share Posted October 17, 2020 (edited) 2 horas atrás, Omesmo disse: qual a estrategia vc usou? eu montei uma função busca palavra bem simples mas se mostrou bem funcional até para pegar dados de html pq de qualquer forma a gente tem que saber pelo que procurar Estou tratando como json mesmo, apesar que sua ideia também é muito boa. Não pego muitos dados, pois utilizo apenas número do concurso, data e números sorteados. Trabalho com turbo delphi, segue código que montei: //json lotofacil JsonStream:= TStringStream.Create(''); IdHTTP1 := TIdHTTP.Create; IdHTTP1.HandleRedirects := True; IdHttp1.Get(url, JsonStream); js := TlkJSON.ParseText(JsonStream.DataString) as TlkJSONobject; if (Trim(vartostr(js.FieldByIndex[1].Value)) = 'Não foi encontrado nenhum concurso com esta numeração') then exit; numerosorteio:= (Trim(vartostr(js.Field['numero'].Value))); datasorteio:= (Trim(vartostr(js.Field['dataApuracao'].Value))); resultadosorteio:= TStringlist.Create; for i:= 0 to 14 do resultadosorteio.add(Trim(vartostr(js.Field['dezenasSorteadasOrdemSorteio'].Child[i].Value))); js.Free; Abraços. Edited October 17, 2020 by Rany Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 17, 2020 Author Share Posted October 17, 2020 37 minutos atrás, Rany disse: Estou tratando como json mesmo, apesar que sua ideia também é muito boa. Não pego muitos dados, pois utilizo apenas número do concurso, data e números sorteados. Trabalho com turbo delphi, segue código que montei: no seu caso é o melhor pq provavelmente o parse do json já está incluido no meu no vba teria que adicionar e como o parse é apenas uma busca de palavras eu montei eu mesmo por ser bem simples o bom que se mostrou eficiente para outras coisas como com html se o arquivo da caixa tivesse uma distribuição organizada poderia se usar divisão em array por caractere chave sem ficar procurando palavras inteiras e ir direto no campo que se deseja Quote Link to comment Share on other sites More sharing options...
Rany Posted October 17, 2020 Share Posted October 17, 2020 (edited) @Omesmo, concordo plenamente, até porque o que realmente importa é que funcione da forma que precisamos. Edited October 17, 2020 by Rany Quote Link to comment Share on other sites More sharing options...
Omesmo Posted October 18, 2020 Author Share Posted October 18, 2020 @Ranyreparei que tiraram os arquivos zip e colocaram o html numa pagina mas a falta de padrão é um agonia e tem mais o da mega nem da dia de sorte nem o nome da loteria na pagina Concurso Local Data do Sorteio 1º número do Sorteio 2º número do Sorteio Concurso Local Data do Sorteio Coluna 1 Coluna Concurso Data Sorteio Bola1 Bola2 Bola3 Concurso Data Sorteio 1ª Dezena 2ª Dezena 3ª Dezena Quote Link to comment Share on other sites More sharing options...
Rany Posted October 18, 2020 Share Posted October 18, 2020 @Omesmovixe, nem sabia dessa mudança, depois vou dá uma olhada. Obrigado. Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted May 30, 2021 Share Posted May 30, 2021 Em 18/10/2020 em 11:14, Rany disse: @Omesmovixe, nem sabia dessa mudança, depois vou dá uma olhada. Obrigado. Rany, Algum progresso nessa questão de pegar os resultados diretamente do site da CEF? Preciso de ajuda para fazer o seguinte, em Delphi: 1- a rotina em Delphi seria chamada diariamente (de forma automatica) de dentro do programa em Delphi 2- pegaria os resultados de cada loteria e os colocaria em arquivos TXT no formato que gosto de usar para minhas análises. 3- O formato desejado é: (ex para o Arquivo de resultados da Megasena, sorteio 2376 Número do Sorteio | Data do Sorteio | Resultado com as dezenas separadas por um traço '-' 2376|29/05/2021|12-14-17-18-19-22 Obrigado por qualquer ajuda. Programo em Delphi (só pras estudar as loterias) e tenho nenhuma experiência com Internet ou Delphi para fazer isso. Mas aprendo rápido se tiver algum exemplo. ---- Na verdade, o seu exemplo acima para a Lotofacil é bem tranquilo. Vou testar ele. Só gostaria de saber como você define a url correta? E as url s das outras loterias? Como vou saber isso, de antemão, por favor? Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted May 31, 2021 Share Posted May 31, 2021 Em 18/10/2020 em 11:14, Rany disse: @Omesmovixe, nem sabia dessa mudança, depois vou dá uma olhada. Obrigado. Rany, Tentei usar seu código acima para buscar resultados da url atual (maio 2021) da CEF para Lotofacil. // -------------------------------------------------------- procedure TFrmTesteSets.Button1Click(Sender: TObject); var numerosorteio, datasorteio, url : String; IdHTTP1 : TIdHTTP; js : TlkJSONObject; JsonStream : TStringStream; i : Integer; resultadosorteio : TStringList; begin //json lotofacil url := 'http://loterias.caixa.gov.br/wps/portal/loterias/landing/lotofacil/'; JsonStream := TStringStream.Create(''); IdHTTP1 := TIdHTTP.Create; IdHTTP1.HandleRedirects := True; IdHttp1.Get(url, JsonStream); js := TlkJSON.ParseText(JsonStream.DataString) as TlkJSONobject; if (Trim(vartostr(js.FieldByIndex[1].Value)) = 'Não foi encontrado nenhum concurso com esta numeração') then exit; numerosorteio:= (Trim(vartostr(js.Field['numero'].Value))); datasorteio:= (Trim(vartostr(js.Field['dataApuracao'].Value))); resultadosorteio:= TStringlist.Create; for i:= 0 to 14 do resultadosorteio.add(Trim(vartostr(js.Field['dezenasSorteadasOrdemSorteio'].Child[i].Value))); js.Free; end; /// -------------------------------------------------------- MAS... Não funcionou na linha que pega os dados da url que "achei" que deveria ser. Portanto, não carregou nada na variável js Alguma dica sobre qual é o erro? Quote Link to comment Share on other sites More sharing options...
Rany Posted May 31, 2021 Share Posted May 31, 2021 @DixieJoe segue código funcional para a lotofácil. var numerosorteio, datasorteio, resultadosorteio, url: String; idhttp1: TIdHTTP; js: TlkJSONObject; //uso a unit LkJSON v1.07 jsonStream: TStringStream; i, qtdanumeros: Integer; begin //url json lotofacil url:= 'http://loterias.caixa.gov.br/wps/portal/loterias/landing/lotofacil/!ut/p/a1/04_'; url:= url + 'Sj9CPykssy0xPLMnMz0vMAfGjzOLNDH0MPAzcDbz8vTxNDRy9_Y2NQ13CDA0sTIEKIoEKnN0dPUzMfQwMDEwsjAw8XZw8XMwtfQ0MPM2I02'; url:= url + '-AAzgaENIfrh-FqsQ9wBmoxN_FydLAGAgNTKEK8DkRrACPGwpyQyMMMj0VAcySpRM!/dl5/d5/L2dBISEvZ0FBIS9nQSEh/pw/'; url:= url + 'Z7_61L0H0G0J0VSC0AC4GLFAD2003/res/id=buscaResultado/c=cacheLevelPage/=/?concurso='; //url:= url + numerodoconcursopretendido; //caso deseje pegar um concurso específico jsonstream := TStringStream.Create(''); idhttp1 := TIdHTTP.Create; idhttp1.HandleRedirects := True; idhttp1.Get(url, JsonStream); if (Trim(jsonstream.DataString) = '') then begin idhttp1.free; jsonstream.free; exit; end; js:= TlkJSON.ParseText(jsonstream.DataString) as TlkJSONobject; numerosorteio:= js.Field['numero'].Value; datasorteio:= js.Field['dataApuracao'].Value; qtdanumeros:= js.Field['dezenasSorteadasOrdemSorteio'].Count; for i:= 0 to (qtdaNumeros - 1) do resultadosorteio:= resultadosorteio + copy(js.Field['dezenasSorteadasOrdemSorteio'].Child[i].Value,2,3) + '-'; resultadosorteio:= copy(resultadosorteio,1,length(resultadosorteio)-1); js.free; idhttp1.free; jsonstream.free; showmessage (numerosorteio + '|' + datasorteio + '|' + resultadosorteio); //exemplo: 2243|29/05/2021|25-01-21-15-20-18-11-06-08-17-19-05-14-24-10 end; Acredito que o código acima sirva para outras loterias caixa, mudando apenas a url json. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.