Python プログラミング

【Python】ビットコインの高頻度データをGMOのAPIからスクレイピングで取得する

この記事は約3分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です!

 

今回はGMOが新しくビットコインの高頻度データをAPIで提供してくれるサービスを開始したようなので早速使ってみました。

 

 

スポンサーリンク
スポンサーリンク

ビットコインの高頻度データをGMOのAPIから取得する

 

import requests
import json
import pandas as pd
from datetime import datetime
from datetime import timedelta

now = datetime.now()
now_f = now.strftime('%Y-%m-%d') 
start = datetime.strptime('2021-08-15', '%Y-%m-%d') # 開始日(APIドキュメントによると20210415から)
end   = datetime.strptime(now_f, '%Y-%m-%d')+ timedelta(1) #終了日(本日まで)

endPoint = 'https://api.coin.z.com/public'

def daterange(_start, _end):
    for n in range((_end - _start).days):
        yield _start + timedelta(n)

price_data = []

for d in daterange(start, end):
#     print(i)
    path = '/v1/klines?symbol=BTC_JPY&interval=5min&date={}'.format(d.strftime('%Y%m%d'))
    response_1 = requests.get(endPoint + path)
    try:
        for i in response_1.json()['data']:
            price_data.append({"close_time":datetime.fromtimestamp(int(i["openTime"])/1000).strftime("%Y/%m/%d %H:%M:%S"),"open_price": int(i["open"]),
                               "high_price": int(i["high"]), "low_price": int(i["low"]),"close_price": int(i["close"])})
                                #ミリ秒のUNIXの場合は/1000にする
    except:
        pass

pd_data = pd.DataFrame(price_data)
pd_data.head()

 

 

 

 

コメント

タイトルとURLをコピーしました