Смысла сравнивать раз в секунду нет - рынок живой и курс меняется очень часто, это вам не доллар/евро на цбр.ру.
По сабжу - на сайте лежит какое нибудь кэшированное значение, которое и получает парсер. (можно легко проверить просто глянув исходник
https://currency.com/ru/btc-to-usd?utm_course=rbc&...)
На сайте курс обновляется через вебсокет, так что его и нужно парсить. Подписываемся на нужную криптовалюту и радуемся
import websocket
import _thread
import json
def on_message(ws, message):
data = json.loads(json.loads(message)['data'])
print(data['bid'], data['ask'])
def on_error(ws, error):
print(error)
def on_close(ws, close_status_code, close_msg):
print("### closed ###")
def on_open(ws):
def run(*args):
ws.send(json.dumps({"event":"pusher:subscribe","data":{"channel":"45076691096786116"}}))
_thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(False)
ws = websocket.WebSocketApp("wss://prod-pusher.backend-capital.com/app/MvtsstCbm?protocol=7&client=js&version=4.2.2&flash=false",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()