MENU

Bot作成準備編 - いなごFlyerをスクレイピングしてVolumeを取得する

いなごFlyerとは

次のサイトのことです。 仮想通貨の各取引所の状況のデータを集計し、可視化してくれる便利なサイトです。

inagoflyer.appspot.com

いなごFlyerをスクレイピングするのか?

@akagami_v2 さんのように、売買ボリュームをみて自動売買のBotを作っている方がいます。

資金を56倍まで増やしたとのことで、一気にBot作成者のいなごが発生したと思います。 手法を公開されていますが、いまの相場状況にあっているかどうかは、ご自身で判断しましょう。

ビットコインを大量に売買する人があらわれた時、価格が大きく変動します。この波に乗って売買をすれば、短期的に利益をあげる手法があり、Botで自動売買している人もいます。

動作環境と使用ライブラリ

Python3.X を使っています。

ツール 使用 備考
OS Mac OS
プログラミング言語 Python
スクレイピング Selenium 自動でブラウザを操作
ブラウザ ChromeDriver Chromeを自動操作するため

Seleniumをインストールしても、スクレイピングが正常うごかないときは、ChromeDriverを更新してみてください。

MacOSを使用している場合、brew install crhomedriverも必要です。

Pythonのプログラム

いなごFlyerからVolumeを取得するプログラムです。

#!python
# -*-coding:utf-8-*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

"""
 テクニカル指標の計算クラス
"""
class InagoflyerScraping:
   # BTC
   BTC = "https://inagoflyer.appspot.com/btcmac"
   # XPR
   XRP = "https://inagoflyer.appspot.com/xrpmac"

   __web_driver = None

   # コンストラクタ
   def __init__(self, url):
       options = Options()
       # ヘッドレスモードを有効にす。指定しない場合、Chromeの画面が表示される
       options.add_argument('--headless')
       # ChromeのWebDriverオブジェクトを作成する。
       self.__web_driver = webdriver.Chrome(options=options)
       self.__web_driver.get(url)

   # 関数VOLでボリュームをスクレイプ(http://inagoflyer.appspot.com) scraping
   def get_volume(self):
       for buyvol in self.__web_driver.find_elements_by_id("sellVolumePerMeasurementTime"):
           sell = buyvol.text
       for sellvol in self.__web_driver.find_elements_by_id("buyVolumePerMeasurementTime"):
           buy = sellvol.text

       return sell, buy

   def quit(self):
       self.__web_driver.quit()


# クラスの使用例はここから

from time import sleep
# スクレイピング初期化 - ビットコインの画面をスクレピング指定
inagoScraping = InagoflyerScraping(InagoflyerScraping.BTC)
# Volume取得
vol = inagoScraping.get_volume()

while True:
   print('Volume ' + vol[0] + " vs " + vol[1] + '\n')
   sleep(1)

動作を簡単に説明すると

いなごFlyerの値取得

  • 非表示のChromeブラウザを起動する
  • バックグラウンドで、いなごFlyerの画面データを取得
  • 定期的に値を参照して、取得する

クラスの使用例の処理です

  • いなごFlyerからVolumeの値を取得
  • 1行間隔で、値を表示

上記のプログラムをpyファイルにコピペして、実行すれば動くと思います。 いなごFlyerの値取得に関しては、スクレイピングというより、表示されないブラウザを起動して、値を見ているだけです。

処理を終了するときは、chromedriverのquitをしないと、ずっと起動しっぱなしなので、注意しましょう。