Если вы собираетесь это делать, рассмотрите возможность совершения одного звонка с использованием официального API и получите все цены.Затем извлеките то, что вы хотите.Ниже с сайта с поправкой мной, чтобы показать желаемое значение для Electroneum.В руководстве по API показано, как извлекать по одному , хотя для этого требуется более высокий план, чем базовый.
from requests import Request, Session
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
import json
url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
parameters = {
'start': '1',
'limit': '5000',
'convert': 'USD',
}
headers = {
'Accepts': 'application/json',
'X-CMC_PRO_API_KEY': 'yourKey',
}
session = Session()
session.headers.update(headers)
try:
response = session.get(url, params=parameters)
# print(response.text)
data = json.loads(response.text)
print(data['data'][64]['quote']['USD']['price'])
except (ConnectionError, Timeout, TooManyRedirects) as e:
print(e)
Вы всегда можете развернуть цикл и проверить требуемыйсписок, например
interested = ['Electroneum','Ethereum']
for item in data['data']:
if item['name'] in interested:
print(item)
Для вашего текущего примера:
Вы можете использовать селектор атрибута для data-currency-value
import requests
from bs4 import BeautifulSoup
url = 'https://coinmarketcap.com/currencies/electroneum/'
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html, 'html.parser')
soup.select_one('[data-currency-value]').text