LoginSignup
7
13

More than 5 years have passed since last update.

スクレイピング: 仮想通貨の時価総額推移について

Last updated at Posted at 2017-08-29

これまでに仮想通貨が市場に供給されると
自分が保有している仮想通貨やトークンがどれほどまでに
時価総額が推移しているかが気になる。

そこでCryptoCurrency MarketCapitalizationsのサービスを使って
時価総額の推移をスクレイピングで抽出してみる。

時価総額の推移は下記ページから情報が取得できる。
たとえばビットコインの時価総額だと現時点で722億ドルということがわかる。

c1.png

時価総額を取得すること自体はこのサイト自体のAPIで取得できるが、
推移を取得するためのAPIが見つからなかったので、スクレイプで情報を取得する

上記ページのソースは単純なテーブル構造のため
bitcoinの時価総額をCSVで抽出するだけであれば、少ないコードで済み、シンプルといえる。
(2017/8/25現在)

MarketPrice.py

from bs4 import BeautifulSoup
import requests as rs
import csv

url='https://coinmarketcap.com/currencies/bitcoin/historical-data/?start=20130428&end=20170827'

res=rs.get(url)

soup=BeautifulSoup(res.text,"html.parser")

prices=soup.select("div#historical-data  tr.text-right")
f = open('market_price.csv', 'w')
writer = csv.writer(f, lineterminator='\n')
for item in prices:
    date=item.select("td")[0].string
    volume=item.select("td")[5].string
    marketcap=item.select("td")[6].string

    csvlist = []
    csvlist.append(date)
    csvlist.append(volume)
    csvlist.append(marketcap)

    print(date,volume,marketcap)
    writer.writerow(csvlist)
f.close()

補足:

時価総額が記載されているテーブル列は非常にシンプルな
構造のため、下記のCSSクエリで済む。

cssクエリ
prices=soup.select("div#historical-data  tr.text-right")

上記のスクリプトと同じ要領で、bitcash(bth), ripple, Ltecoin, Ethereum(eth), Rippleも出力した結果が下記のとおり。

chart.png

この結果で面白いのが2017年6月末時点で、Ethereumの時価総額がBitcoinの時価総額に到達する直前だった。
そこから7月に入るとEthereumのFlashCrashといったスケーリング問題が浮き彫りになり、Bitcoinの分裂問題で時価総額が、仮想通貨全体で下落した。

そして8月に入り一時的にBitcoinの分裂問題も解決?したのか仮想通貨全体が再び上昇基調にある。(8月にはいるとBitcashがあらたに市場に流通することとなり、市場への供給当初からrippleの時価総額を抜いている。)

以上で時価総額の推移を抽出できたが、情報提供元であるサイト自体、トークンの市場取引価格を提供するAPIを公開している。そのためサービス自体がとても魅力的ともいえる。

次回は自分の保有するトークン残高を日本円で取得するようにしてみようと思う。

7
13
0

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
7
13