Bài viết này chia sẻ đoạn code sử dụng API của coinmarketcap để lấy dữ liệu giá, tên coin, tổng cung, biến động giá… của các đồng coin và lưu chúng vào file csv.
Dưới đây là toàn bộ code kèm chú thích:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import requests import pprint import time #Vào trang https://pro.coinmarketcap.com/ đăng ký tài khoản để lấy API key và đọc tài liệu hướng dẫn sử dụng API của Coinmarketcap url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' # Lấy dữ liệu 20 coin đầu tiên sắp xếp theo giá trị vốn hóa parameters = { 'start':'1', 'limit':'20', 'convert':'USD' } header = { 'Acccepts':'application/json', 'X-CMC_PRO_API_KEY':'66fd0b9f-9260-48a8-97ef-7d14cea67301' } i = 0 # Chỉ số các file while True: coindata = open('coindata'+str(i)+'.csv', mode='w') # Tên file + chỉ số i coindata.writelines('Symbol,Price,Last updated \n') # Viết tiêu đề json = requests.get(url, params=parameters, headers=header).json() #pprint.pprint(json) # Khi print json sẽ thấy dữ liệu 3 lớp đầu tiên 'data' tiếp đến 'symbol', 'last_updated', 'quote' tiếp đến lớp 'price' nằm trong 'qote' x = json['data'] # Tạo mảng x mới pprint.pprint(x[0]) for coins in x: #duyệt các phần tử trong mảng print(coins['symbol'],coins['quote']['USD']['price'],coins['last_updated']) symbol = coins['symbol'] # Lấy dữ liệu symbal price = coins['quote']['USD']['price'] # Lấy price last_update = coins['last_updated'] # Lấy last_updated coindata.writelines(str(symbol)+','+str(price)+','+str(last_update) +'\n') #Viết vào file coindata coindata.close() # đóng và lưu file time.sleep(10) # đợi 10s mới chạy tiếp i=i+1 if i==5: i=0 # gán lại i=0 khi vòng lặp while chạy 5 lần để giới hạn chỉ lưu 5 file trong máy thôi |
Chương trình sau khi chạy – Lấy thông tin coin và tự động tạo và lưu vào file .csv như trong ảnh dưới đây.