Receba as últimas taxas de câmbio usando a linha de comando?

4

Eu procuro uma maneira de obter a última taxa de câmbio online usando a linha de comando. Eu quero usá-lo com outro programa. Até agora tudo o que tenho é o seguinte:

wget -qO- "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" |  sed '/res/!d;s/<[^>]*>//g';

Não é o meu código, encontrado na web.

Ele será exibido no console, mas preciso salvá-lo em um arquivo ou em uma variável em outro programa que chamará esse comando. Não tenho experiência com o wget e não consegui encontrar outra maneira de fazer o que quero. Existe algum programa (o Windows é o preferido, mas * nix é aceitável) para fazer isso ou existe uma maneira do wget?

Anderson Nascimento Nunes
fonte

Respostas:

1

Se você puder encontrar um site que forneça informações sobre forex de maneira otimizada para automação, poderá renunciar sedcompletamente à chamada e apenas usar a -Oopção wget. Até então, o comando encontrado funcionava bem com as portas do Windows wget e sed ; você só precisa fazer alguns ajustes. Primeiro, você deve substituir as aspas simples na chamada por sedaspas duplas e remover o ponto e vírgula à direita. Segundo, você precisa redirecionar a saída final para um arquivo ou variável de ambiente em vez do console.

  • Para saída do console:

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g"
    
  • Para saída do arquivo (ajuste o nome do arquivo e o caminho conforme necessário):

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g" > forex_%date%.log
    
  • Para saída variável (ajuste o nome da variável conforme necessário):

    for /f "delims=" %%i in ('wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" ^| sed "/res/!d;s/<[^>]*>//g"') do @set forex=%%i
    
Synetech
fonte
oi, quando tento usar esse comando, ele retorna ERRO 403 proibido. é possível que agora (2018) o Google esteja impedindo chamadas de clientes que não são navegadores? esse serviço ou outro equivalente está disponível?
Cesarpachon
1

Esse comando deve funcionar em (quase) qualquer UNIX ou no Git Bash no Windows. Se você não tiver wget, poderá usar curl:

curl -L "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" | sed '/res/!d;s/<[^>]*>//g'

Você pode salvar em um arquivo com:

the_cmd > rate.txt

Ou variável com:

rate=$(the_cmd)

Você pode querer suprimir stderros comandos para reduzir o ruído. Você pode fazer isso redirecionando o seu stderrpara /dev/null, assim:

curl -L "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" 2>/dev/null | sed '/res/!d;s/<[^>]*>//g'
wget -qO- "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" 2>/dev/null | sed '/res/!d;s/<[^>]*>//g'

Não tenho certeza se você precisa de mais alguma coisa. Não conheço uma ferramenta melhor para fazer isso, nem no Windows nem no * nix.

janos
fonte