Как получить курсы валют с биржи dedust и обработать их в программе?

Как можно получить цифровое значение курса одной валюты к другой на бирже dedust, используя модуль beautiful soup, учитывая что для получения значений необходимо выбрать валюту, а не просто перейти на определенную страницу, и также передать количество валюты от которой исходить? Вот пример URL https://dedust.io/ - открывается главная страница без курса.
Изображение к вопросу
  • 15 января 2024 г. 16:08
Ответы на вопрос 2
Если ваша задача заключается в том, чтобы извлечь информацию о курсе валют с веб-сайта `dedust.io`, используя Python и библиотеку Beautiful Soup, скорее всего, вам понадобится также использовать библиотеку `requests` для выполнения HTTP-запросов. Однако это работает только в том случае, если данные о курсах валют доступны в HTML-коде страницы и не подгружаются асинхронно с помощью JavaScript.

Следует отметить, что на момент написания этого ответа (на знания до 2023 года) у меня нет информации о бирже `dedust.io` и ее API. Лучшим способом получить данные о курсах валют в реальном времени, в целом, является использование их API, если он существует.

Ниже представлен обобщенный пример кода, который позволяет извлекать информацию о курсах валют с помощью Beautiful Soup, если предположить, что данные не подгружаются асинхронно:

```python
import requests
from bs4 import BeautifulSoup

def get_currency_rate(base_currency, target_currency, amount):
    # Сформируйте URL на основе входных параметров
    url = f"https://dedust.io/?base_currency={base_currency}&target_currency={target_currency}&amount={amount}"
    response = requests.get(url)

    # Проверяем успешный ли запрос (HTTP status code 200)
    if response.status_code == 200:
        # Парсим HTML
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # Определите правильный селектор для извлечения информации о курсе
        # Это зависит от структуры HTML на бирже dedust.io, пример:
        # rate = soup.select_one('.exchange-rate-selector').text
        
        # Обработаем значение и преобразуем в числовой формат
        # rate_value = float(rate.replace(',', '.'))

        # Здесь вам нужно знать структуру страницы, чтобы извлечь нужные данные, например:
        # rate = float(soup.find('div', {'id': 'exchange-rate'}).text)
        print(f"The exchange rate from {base_currency} to {target_currency} for amount {amount} is: {rate_value}")
        
        return rate_value
    else:
        print("Error: Unable to fetch data from dedust.io")
        return None

# Пример вызова функции:
rate = get_currency_rate('USD', 'EUR', 100)
```

Важные моменты:
- Вам нужно знать структуру HTML-документа (`dedust.io`), чтобы найти правильный элемент, содержащий курс валют.
- Если данные подгружаются на страницу с помощью JavaScript, то Beautiful Soup не сможет их найти, поскольку она не выполняет JavaScript. В таком случае можно использовать, например, Selenium или Pyppeteer, чтобы управлять браузером и извлекать данные после подгрузки.
- Следует уважать условия использования веб-сайта и проверять, не нарушает ли автоматизированное извлечение данных его политику использования.

Это общие рекомендации по извлечению данных, точные детали реализации будут зависеть от структуры веб-страницы и наличия API.
Не совсем верный используешь метод, содержимое страницы формируется на javascript в браузере, твой 'прелестный суп' так не умеет. 

Могу предположить что цены там тупо берутся тут https://api.dedust.io/v2/prices (этот запрос раз в 3 секунды идет со страницы)
Похожие вопросы