Obtendo a cotação do Bitcoin com SED
Nesta dica veremos como usar a combinação do
curl e
sed para obter a cotação do
Bitcoin. Usaremos a API da exchange
Binance.
A documentação da API da Binance pode ser encontrada aqui:
Pesquisando por "ticker" encontramos as seguintes informações:
- Symbol Price Ticker: GET /api/v3/ticker/price
- Parameters: symbol | STRING
Então o que queremos é a junção de:
https://api.binance.com + /api/v3/ticker/price
Podemos passar a variável "symbol" como parâmetro GET para filtrar o preço pela moeda desejada, que em nosso caso será o Bitcoin.
Primeiro passo será listar todos os tickers e descobrir quais são os referentes ao BTC.
Listar todos os tickers:
curl -s https://api.binance.com/api/v3/ticker/price
Filtrar a saída com o sed, imprimindo um por linha, somente o valor de symbol:
curl -s https://api.binance.com/api/v3/ticker/price | sed 's/symbol/\nsymbol/g' | sed 's/^symbol\":\"\([A-Z]*\).*$/\1/'
Ainda temos bastante coisa né? Na data desta dica, 841 símbolos. Vamos filtrar somente as linhas que começam com BTC:
curl -s https://api.binance.com/api/v3/ticker/price | sed 's/symbol/\nsymbol/g' | sed 's/^symbol\":\"\([A-Z]*\).*$/\1/' | sed -n '/^BTC/p'
BTCUSDT
BTCTUSD
BTCPAX
BTCUSDC
BTCUSDS
BTCBBTC
BTCBUSD
BTCNGN
BTCRUB
BTCTRY
BTCEUR
BTCZAR
BTCBKRW
BTCIDRT
BTCUPUSDT
BTCDOWNUSDT
BTCGBP
BTCUAH
Estamos chegando lá! O símbolo que queremos é o BTCUSDT. Então vamos chamar a API informando o símbolo desejado:
curl -s https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
{"symbol":"BTCUSDT","price":"9146.99000000"}
E finalmente o comando para extrair somente o preço:
curl -s https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT | sed 's/^.*price.:.\([0-9\.]*\).*$/\1/g'
9147.57000000
DICA: crie um alias chamado "bitcoin" ou nome similar para o comando acima.
Até a próxima!
Outras dicas deste autor
Primeira Conferencia Hacker no Brasil
Ferramentas CASE para Linux
Checar a conexão com a Internet em Python
Convertendo scripts em ASP para PHP
InstaPy: Error, unable to determine correct filename for 64bit linux [Resolvido]
Leitura recomendada
Expressão regular para validar um IP
SED - texto para maiúsculas, minúsculas, pascal case e camel case
Ubuntu - Iniciar Conky no Login
Ações condicionais no SED
SED - substituir apenas a ocorrência N de uma string
Comentários
Nenhum comentário foi encontrado.