Python プログラミング

【Python】ビットコインの5分足の価格データをGMOコインのAPIでスクレイピングする

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

 

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

 

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

 

 

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

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

 

以下がコードになります。仕組みとしては開始日と終了日までの5分足のデータをスクレイピングして合体させてデータフレームにする処理になります。

 

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()

 

 

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. […] 関連記事:【Python】ビットコインの5分足の価格データをGMOコインのAPIでスクレイピングする […]

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