Парсинг курсов валют

Парсинг курсов валют

Получаем актуальные курсы валют там, где захочется. Бесплатно, без смс, но с регистрацией.

Нам понадобится:

  • Python 3.7 и выше
    Скачать для Windows тут: https://www.python.org/downloads/
    В линукс и mac os Python встроен из коробки.
  • Библиотека requests.
    Обычно идет в комплекте с дистрибутивом Python. Если ее нет, то устанавливаем командой
pip install requests

Все способы будут показаны на получения курса конвертации Доллара США в Рубль. С другими валютами все действия делаются аналогично.

Самый простой API для использования. Чтобы получить ключ, достаточно просто ввести e-mail и на него придет ваш APIkey. Можно использовать временную почту, все равно она понадобится только один раз.

Ссылка для получения free API:

Пример запроса в python:

import requests data = requests.get('https://free.currconv.com/api/v7/convert?apiKey=YOUR_API_KEY&q=USD_RUB&compact=ultra').json() print (data['USD_RUB'])
Результат выполнения запроса на момент написания статьи.
Результат выполнения запроса на момент написания статьи.

Ограничения:

  • Не более 100 запросов в час.
  • Только две котировки за один запрос.
  • История доступна на 8 дней.
  • Нет возможности сменить базовую валюту.

Для этого сервиса уже требуется полноценная регистрация. Ключ API будет доступен после подтверждения e-mail адреса и входа в профиль.

Парсинг курсов валют

Бесплатный тариф позволяет сгенерировать два API ключа.

Функционал намного шире, чем у currencyconverterapi. Например, поддерживается смена базовой валюты и запрос сразу нескольких котировок из одного запроса.

Более подробная документация по формированию запросов: https://docs.openexchangerates.org/docs/latest-json

Пример запроса в python:

import requests data = requests.get('https://openexchangerates.org/api/latest.json?app_id=YOUR_API_KEY&base=USD&symbols=RUB').json() print (data['rates']['RUB'])
Результат выполнения запроса на момент написания статьи.
Результат выполнения запроса на момент написания статьи.

Ограничения:

  • Обновление 1 раз в час.
  • История только за один день.
  • 1000 запросов в месяц.

Официальные курсы валют ЦБ РФ в виде XML или JSON. Обновляется редко и сильно отличается от биржевого.

Для работы не требуется регистрация и получение ключа API. Достаточно просто выполнить запрос к ресурсу.

Выдает сразу все имеющиеся котировки, из которых просто нужно достать искомое значение.

Пример запроса в python:

import requests data = requests.get('https://www.cbr-xml-daily.ru/daily_json.js').json() print (data['Valute']['USD']['Value'])
Результат выполнения запроса на момент написания статьи.
Результат выполнения запроса на момент написания статьи.

Ограничения:

  • Не более 5 запросов в секунду.
  • Не более 120 запросов в минуту.
  • Не более 10000 запросов в сутки.

А что там по крипте...

Для получения сводок по криптовалютам есть замечательный сайт от Игоря Чубина.

Можно просматривать в браузере, но лучше в терминале при помощи утилиты curl. В линуксы она уже встроена, а версия для Windows доступна тут.

curl rate.sx
Парсинг курсов валют

Так же можно просматривать графики. Достаточно к rate.sx добавить буквенный код валюты.

Для смены фиатной валюты нужно добавить поддомен в виде буквенного кода валюты.

curl rate.sx/BTC #курс доллара к биткоину curl rub.rate.sx/BTC #курс рубля к биткоину curl rub.rate.sx/USDT #курс рубля к USDT. Можно использовать как курс USD-RUB

И, естественно, можно просто получить текущее значение курса конвертации. Делается это следующим запросом:

curl rate.sx/1BTC #курс доллара к 1 биткоину curl rub.rate.sx/1 BTC #курс рубля к 1 биткоину

В ответ придет число, соответствующее текущему курсу.

После того, как есть возможность получать данные в текстовом виде, можно с ними удобно работать. Можно повесить котировки на свой сайт, сделать бота информера и т.д.

Можно даже совсем по дичи:

Взять esp8266/rasberry pi/onion omega 2 или любой другой микроконтроллер, с которого можно отправлять http запросы и сделать сирену ГО, которая будет срабатывать при повышении курса. Ну или на что там у вас фантазии хватит.

Лично я сделал бота для моего matrix-сервера на bash - скрипте:

#!/bin/bash usd_cur=$(python3 usdcb.py) usd_btc=$(curl https://usd.rate.sx/1BTC) rub_btc=$(curl https://rub.rate.sx/1BTC) last_cur=$(tail -1 cur.log) if (( $(echo "$usd_cur > $last_cur" | bc))) then echo -e "Новое дно! Доллар США $usd_cur \n₿ - USD $usd_btc \n₿ - RUB $rub_btc" | python3 matrix-commander.py last_cur="$usd_cur"; echo "$last_cur" >> cur.log; else echo -e "Доллар США $usd_cur \n₿ - USD $usd_btc \n₿ - RUB $rub_btc" | python3 matrix-commander.py last_cur="$usd_cur"; echo "$last_cur" >> cur.log; fi

Все примеры, упомянутые в этом гайде можно скопировать здесь:

1616 показов
16K16K открытий
21 комментарий

Окей, допустим, ты хочешь сделать... хммм... анальную пробку, которая будет вибрировать, когда купленный BTC упадет ниже определенной отметки. Тащить значения, парсингом html, или, упаси боже, телеграм канала - слишком геморно и бессмысленно. Поэтому тут и нужны api, либо терминальные информеры.

Ответить

Комментарий недоступен

Ответить

Нужен усреднённый курс валют по ценам из пятёрочки

Ответить

У них нет публичного API.
Но круто было бы сделать информер по акциям

Ответить

курс покупки в тинькофф. Родной api, без регистрации и ограничний

url = 'https://api.tinkoff.ru/v1/currency_rates?from=USD&to=RUB'
print(requests.get(url).json()['payload']['rates'][2]['buy'])

Ответить

Ебанутым нет покоя.

Ответить