LoginSignup
2
4

More than 5 years have passed since last update.

Python で仮想通貨情報取得

Last updated at Posted at 2018-05-01

ちょっと主要仮想通貨間の関係を調べてみようかと考えているが、まず手動でデータ収集をするのは無いでしょう。ウェッブクローラつかってもいいのですが、そこまで手間でなくてもいいのでは、APIがあるはずのではとおもって、試してみたメモを取りました。

情報の出所

  http://www.procrasist.com/entry/cryptcoin-api_ この記事に書いたとおり、https://coinbin.org/btc 
にアクセスしてみたら、エラーではじかれた。まぁ、原因を調べるより他のAPIをさがそうと...
そこにたどり着いたのは、CoinApi 無料で使えるAPIキーは一日100回しか使えないが、私の場合、100回でも何とかなりそうなので、これでいきましょう。
  早速APIキーを申請して、通貨一覧を取得します。

通貨一覧を取得

  https://rest.coinapi.io/v1/symbols (Curlでもいいのですが、自分の場合、Postmanを使ってアクセスしてみました。HeaderにX-CoinAPI-Keyを申請したAPIキーでセット)結構でかいので、もう一回プログラムからアクセスしないように、結果を一旦ファイルに保存します(symbols.json)

通貨情報取得

 ここからは、Pythonで行きましょう。

必要なパラメータを準備

import requests
payload = {'period_id': '12HRS', 'time_start': '2017-01-01T00:00:00','limit':'1000'}
headers = {'X-CoinAPI-Key': '申請したAPIキー'}

先ほど保存した通貨一覧情報を読み取る


import pandas as pd
from pandas.io.json import json_normalize
symbols = pd.read_json("symbols.json")
simp = symbols[['asset_id_quote','exchange_id','symbol_id','symbol_type']]

あまりも多すぎるので、BITSTAMPのUSDとのレート情報を取る

simpsymbols = simp[simp.symbol_id.str.startswith('BITSTAMP') 
            & simp.symbol_id.str.contains('USD') 
            & (~simp.symbol_id.str.contains('EUR')) ]

通貨毎にデータを取得、CSVファイルに保存

url_base = 'https://rest.coinapi.io/v1/ohlcv/{0}/history'

for symbol_name in simpsymbols.symbol_id.unique():
    print (url_base.format(symbol_name))
    data = requests.get(url_base.format(symbol_name),
            headers=headers,
            params=payload).json()
    df =  json_normalize(data)
    df.to_csv(symbol_name+'.csv')

これから

今度の記事はそれらのデータの分析となりますが、気が向いたら。

2
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4