いなごFlyerをPhantomJSでスクレイピング

以前bitFlyer LightningをPhantomJSでスクレイピングする方法を紹介した記事を公開しましたが、どうやら読者が求めているのはいなごflyerのスクレイピング方法だったようです...

そこでいなごFlyerのスクレイピング方法についても紹介したいと思います。

スクレイピング対象

上記のツイートでも紹介されている、いなごFlyerのBuyとSellのボリュームを取得します。

ちなみに画像の赤枠の部分だと思います。

いなごFlyerのBuy/Sellボリューム

スクレイピングのサンプルコード

いなごFlyerからのスクレイピングは、認証してログインする必要が無いのでbitFlyer Lightningの場合よりも簡単です。

chromeでいなごFlyerを開き、Buy Volume, Sell Volumeの部分を右クリックして検証を選択します。

いなごFlyerのボリューム部分のHTML

これを見るとBuy Volume部分はidがbuyVolumePerMeasurementTime、Sell Volume部分はsellVolumePerMeasurementTimeであることが分かります。

この部分をスクレイピングすることで買いと売りの比率を取得できます。

実際に完成したコードはこちらです。

var page = require('webpage').create()

page.open('https://inagoflyer.appspot.com/btcmac', function(status) {
  console.log('Status: ' + status)

  setInterval("getData()",3000)
})

function getData()
{
  var data = page.evaluate(function () {
    return {
      buy: document.getElementById('buyVolumePerMeasurementTime').innerHTML,
      sell: document.getElementById('sellVolumePerMeasurementTime').innerHTML
    }
  })
  if (data.buy == null || data.sell == null) return

  console.log('buy volume -> ' + data.buy + '   sell volume -> ' + data.sell)

  if (parseFloat(data.buy) > parseFloat(data.sell)) {
    console.log("Buy Trade")
  } else if (parseFloat(data.buy) < parseFloat(data.sell)) {
    console.log("Sell Trade")
  } else {
    console.log("No Trade")
  }
}

作成したら後は実行するだけです。

$ phantomjs inagoFlyer.js

6行目にてsetInterval関数を使って3秒ごとボリュームを取得しています。
その後BuyとSellを比較してBuyが多ければ「Buy Trade」、Sellが多ければ「Sell Trade」と出力しています。

実際に動かすとこんな感じ↓ いなごFlyerからスクレイピングしてくる例

この出力部分に発注処理を追加すれば、いなごFlyerで取引するbotの完成です。

arrow_upward