May 21, 2022

Отримуємо ціну крипти з coinmarketcap.

Сьогодні я покажу два способи отримання інфи з coinmarketcap:
-Нормальний, через офіційне api.
-Колхозний через парсер, інформація не така точна(з api ви отримуєте 12 цифр після крапки в ціні біткоіна в доларах), але зате нема обмежень по використанню.

Через api.

Для початку треба отримати ключ api. Тому ідемо на цей сайт якщо ще не реєструвались на порталі для розробників, або на цей сайт якщо вже режструвались.

Ключ api брати тут

Далі копіюєте свій ключ api.
В файлі coinfig.py пишите таке:

api_key = 'ВАШ КЛЮЧ API'

Замість ВАШ КЛЮЧ API напишіт ваш ключ api)))
Тепер main.py:

from requests import Request, Session
import config

Імпортим requests для запитів до api та config де зберігається ключ api.

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'

Записуєм url.
Там різні url для різного тому в кінці я залишу посилання на офіційну документацію.

parameters ={
'slug': 'bitcoin',
'convert': 'USD'
}

Ставимо 'slug' в значення 'bitcoin' це валюта ціна якої нам треба.
'convert' ставимо в значення 'USD', як ви могли здогадатись це в якій валюті нам треба ціна.

headers ={
    'Accepts': 'application/json',
    'X-CMC_PRO_API_KEY': config.api_key
}

'Accepts' це по логіці в якому форматі нам буде вертати результати, але я не впевнений.
'X-CMC_PRO_API_KEY' це наш ключ api.

session = Session()
session.headers.update(headers)

Створюєм сесію requests і додаєм наші заголовки.

response = session.get(url, params=parameters)
print(response.json()['data']['1']['quote']['USD']['price'])

Кидаєм запит до api і виводимо результати.
Результат такий пиблизно буде: 29320.595168474585, але сподіваюсь у вас біткоін по 100к)))

Загалом найкращий спосіб але в безкоштовній версії 333 запита в день, але я думаю можна створити 5 акаунтів і раз в хвилину запити кидати зможете.
Як і обіцяв офіційна документація.

Без api(колхоз).

Це дійсно колхозний спосіб для порівняння результати api 29320.595168474585 та результати без api 29,320.60 (кому видаляти можна) тобто з api 12 цифр після крапки а тут 2.
Але зате тут скільки хочете в день(та й треба хоч десь парсери показати).

Для початку треба поставити BeautifulSoup.
pip install beautifulsoup4 це треба ввести в командний рядок/термінал.
Тепер код:

import requests
from bs4 import BeautifulSoup

Імпортимо requests та BeautifulSoup.

page = requests.get("https://coinmarketcap.com/currencies/bitcoin/")

Отримуємо сторінку про bitcoin.

soup=BeautifulSoup(page.content, 'html.parser')

Налаштовуєм парсер щоб він міг шукати по нашій сторінці данні.

crypto_name=list(soup.find(class_="sc-1q9q90x-0 jCInrl h1").children)[0]
Надпис Bitcoin

Знаходимо для початку елемент(завдяки пошуку за класом) який є батьківським для надпису Bitcoin(і так я знаю що в посиланні нашому і так написано біткоін, але по перше ми могли б писати в посиланні btc а по друге парсинг треба показати.
Потім конвертуємо список дочірніх елементів в нормальний список і беремо нульовий елемент(це і є надпис "Bitcoin").

crypto_price=soup.find(class_="priceValue").text
Надпис ціни

Беремо елемент ціни за класом і отримуємо з цього елемента текст.

print(crypto_name,crypto_price)

Виводимо назву крипти та ціну.

Як бачите без api код навіть менше, але це не відміняє його колхозність.

На цьому все.
Всім удачі!
Підготовлено каналом: https://t.me/cryptopidval