Cotação do dolar, euro, e outras moedas em XML ou JSON com jQuery, Javascript ou PHP

Se você está enfrentando dificuldades para obter a cotação do dólar e do euro de forma simples, é importante evitar a captura de dados de outro site por meio do código HTML, pois isso não é uma solução eficiente e pode levar a problemas futuros. Em vez disso, é mais recomendado utilizar um webservice para esse propósito. Neste texto, vamos apresentar o uso do YQL (Yahoo! Query Language) como uma opção para obter essas informações.

Utilizando o YQL para obter a cotação

Primeiro, vamos mostrar um exemplo do uso do jQuery para obter a cotação do dólar em relação ao real (USDBRL) através do YQL. Lembre-se de incluir a biblioteca jQuery em seu documento HTML:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

Agora, veja o código JavaScript que faz a requisição ao YQL e exibe a cotação do dólar na página:

// URL com a Query do YQL
var url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%3D%22USDBRL%22&format=json&diagnostics=false&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

// Obtem e trata os dados em JSON
    &#36;.getJSON( url, function( data ) {

  // Agrupa os dados em HTML
  try {
    var indices = '<p><strong>DOLAR</strong> R	&#36; '+data.query.results.rate[0].Rate+'</p>';
  } catch(err) {
    var indices = err.message;
  }

  // Mostra a cotação do dolar na tag <div id="info"></div>
      &#36;('#info').html(indices);
});

Sobre o YQL

O YQL é uma ferramenta oferecida pela Yahoo! Developer Network que permite consultar e manipular dados através de uma interface web, utilizando uma linguagem similar ao SQL. É uma ótima opção para acessar informações diversas, como notícias, clima, bolsa de valores e, é claro, cotações de moedas. Além disso, possui uma ferramenta de testes com um console para realizar as consultas.

query

Como explorar as tabelas do Yahoo! Finance

Se você deseja explorar as tabelas disponíveis no Yahoo! Finance, siga estes passos:

  1. Acesse o YQL Console.
  2. Selecione a opção “Show Community Tables” logo acima das tabelas à direita.
  3. Digite “finance” no campo de busca.
  4. Você verá todas as tabelas do Yahoo! Finance (cerca de 15 tabelas)
  5. Clique na tabela que será usada neste exemplo: yahoo.finance.xchange
  6. Ela já traz um exemplo de como será a consulta. Para obter a cotação do dólar em real (USDBRL) ou euro em real (EURBRL), utilize a seguinte consulta: select * from yahoo.finance.xchange where pair in ("USDBRL","EURBRL")
  7. Desmarque a opção “Diagnostics” logo abaixo do campo da consulta para simplificar o resultado.
  8. A saída poderá ser em XML ou JSON, escolha a que melhor lhe servir.
  9. Abaixo do resultado da consulta, haverá o link para usado na programação.

Também é possível termos a saída no formato CSV:

http://finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=USDBRL=X,EURBRL=X

"EUR",1.2972
"GBP",1.6034

Obtendo os dados em PHP

Se preferir obter os dados em PHP, basta utilizar as funções a seguir:

    &#36;json_str = file_get_contents( "[url_do_yql]" );
    &#36;data = json_decode(	&#36;json_str);

Lembre-se de substituir [url_do_yql] pela URL gerada a partir da sua consulta no YQL.

O YQL oferece diversas possibilidades além da conversão de moedas, permitindo obter informações sobre notícias, clima, bolsa de valores e muito mais. Sinta-se à vontade para explorar as diferentes tabelas disponíveis!


Tags:

  • Yahoo
  • Dólar
  • Cotação
  • Query
  • API
  • jQuery
  • YQL

Compartilhar:

9 Comentários

  • Foto de Yuri Iago
    Yuri Iago
    Boa noite, Gostaria de saber se ainda esta funcionando ? Fiz todo passo a passo e esta dando erro de TIMED OUT.
  • Foto de Yuri Iago
    Yuri Iago
    Boa noite, Gostei do seu post, mas sabe me dizer se ainda esta funcionado ? pq fiz conforme você informou mas esta dando time out....
  • Foto de Daniel martins
    Daniel martins
    Consegui: $.getJSON( "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDBRL%22%2C%22EURBRL%22%2C%22CNYBRL%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=", function( data ) { var indices = 'EURO R$ '+money(data.query.results.rate[0].Rate)+''+ 'DOLAR R$ '+money(data.query.results.rate[1].Rate)+'' + 'Renminbi R$ '+money(data.query.results.rate[2].Rate)+''; $('#info').html(indices); }); Para quem quiser! Abraços
  • Foto de Daniel martins
    Daniel martins
    Amigo, muito bom seu post! Como faço para conseguir a cotação da moeda Renminbi? Não estou conseguindo. :( Obrigado e abraços
  • Foto de Pablo Vaz
    Pablo Vaz
    Valeuuuuuu muito obrigado pela dica
  • Foto de Otavio
    Otavio
    Meu camarada, excelente post! Estou usando lá no meu site. Se puder dar sua opinião sobre o que achou dele, fico agradecido. Abraços!
  • Foto de OceanSky
    OceanSky
    Show de tutor. Obrigado.
  • Foto de junior
    junior
    Bacana, Voce sabe se este webservice é tempo real?
  • Foto de Tiago
    Tiago
    Muito obrigado. Ajudou bastante.

O que achou do artigo?

Escreva um comentário, deixe-me saber o que achou do artigo. Se tens uma dúvida basta perguntar:

Resposta ao comentário:
Loading...