HDDマイニング chia 収入を自動集計するスクリプトの日本円変換表示に対応した

HDDマイニング情報・紹介
スポンサーリンク

先日作った、XCH収入を自動集計してcsvファイルに追記するスクリプトですが、せっかくなので、日本円でいくらになるかの変換まで対応しました
参考になれば幸いです

記事作成日:2021年10月22日

はじめに

前回の記事がこちら。
chia blockchainに対してCLIからXCHの収入を取得するまでは同じです。

HDDマイニング chia 毎日の収入を自動集計するスクリプトを作った
毎晩、0時を過ぎた頃に1日のXCH収入をスプレッドシートに貼り付けるのが日課なのですが、それも面倒になってきたので、自動集計してcsvファイルに追記するスクリプトを作成しました。 参考になれば幸いです 記事作成日:2021年10月13日 必...

 

必要なもの

  • Windows10
  • chia blockchain
  • python実行環境
    (BeautifulSoup4が必要)

BeautifulSoup4のインストール

WebからXCH/USDTと、USD/JPYの情報を取得(スクレイピング)するため、BeautifulSoupを利用します。事前にpipでインストールが必要。

pip install beautifulsoup4

 

ソースコード一式

↓githubにアップしましたので、必要に応じてご参照ください。

GitHub - MaxiParadise/Get_Chia_DailyIncome
Contribute to MaxiParadise/Get_Chia_DailyIncome development by creating an account on GitHub.

 

使い方

  1. get_chia_income_with_jpy.py を開いて下さい。
  2. ver_str = ‘1.2.9’ を、自身のChia Blockchainのバージョンに合わせておく。
  3. address = [
    xch1address11111111111111111111111111111111111111111111111111111
    ・・・・
    ]
    を、全て自身のプール支払先アドレスに変更する。

最後に、chia_wallet_daily_with_jpy.csvを同じフォルダにおいて、以下のコマンドを実行するだけ。

python get_chia_income_with_jpy.py

chia_wallet_daily_with_jpy.csv に、昨日の入金データが1回追記されます。
これを、毎日12時過ぎなど定時に1回、
タスクスケジューラ等で自動実行すれば、自動記帳されていきます。

・実行サンプル

 

仕組み

XCHの集計

XCHのプールごとの収入を取得するのは、前回記事と同じ。

 

XCH/USDT 交換レートの取得

XCH/USDTはGate.ioのWebページから取得しています。
具体的には、https://www.gate.io/ja/trade/XCH_USDT を開いて、レート箇所を抽出します。


ソースのうちid=”currPrice”を含むタグに囲まれた部分がXCH/USDTになりますので、
「.select(“#currPrice”)[0].string」によって取得、floatに変換します。

これを、get_xch_to_usdt()という名の関数に定義しました。

headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}

def get_xch_to_usdt():
  url_to_usdt="https://www.gate.io/ja/trade/XCH_USDT"
  request = urllib.request.Request(url_to_usdt, headers=headers)
  res_usdt = urlopen(request)
  soup_usdt = BeautifulSoup(res_usdt, 'html.parser')
  xch_to_usdt = soup_usdt.select("#currPrice")[0].string
  return float(xch_to_usdt)

なおここでUser Agentをセットしておかないと403 Forbiddenで怒られますのでChromeでのUser Agentをセットしています。

USD/JPY 交換レートの取得

同様に、USD/JPYのデータも、Yahooファイナンスのページから取得します。


こちらはclass=”stoksPrice”を含むタグに囲まれた部分がUSD/JPYになりますので、
上記とは違い、「.select_one(“.stoksPrice”).string」という抽出方法になります。

これを、get_xch_to_usdt()という名の関数に定義しました。

def get_usd_to_jpy():
  url_to_jpy="https://stocks.finance.yahoo.co.jp/stocks/detail/?code=usdjpy"
  res_jpy = urlopen(url_to_jpy)
  soup_jpy = BeautifulSoup(res_jpy, 'html.parser')
  usd_to_jpy = soup_jpy.select_one(".stoksPrice").string
  return float(usd_to_jpy)

 

あとは乗算するだけ

USDTとUSDの違いこそありますが、
XCH/USDTとUSD/JPYが取得できたら、
その日のXCH値に対して乗算するだけ。

#XCH/USDT USD/JPY取得
xch_to_usdt = get_xch_to_usdt()
usd_to_jpy = get_usd_to_jpy()
jpy = xch_total * xch_to_usdt * usd_to_jpy

print('xch_total =', xch_total)
print('xch_to_usdt=', xch_to_usdt)
print('usd_to_jpy =', usd_to_jpy)
print('jpy =', jpy)

・実行結果

xch_total = 0.003383420672
xch_to_usdt= 155.96
usd_to_jpy = 113.58
jpy = 59.93369995

無事、この日の収益は約60円であることが算出できました!(少ないなあ)

なお、いずれも「取得した瞬間の値」である事に注意。
午前0時ちょうどに、前日のXCHを集計し、
午前0時ちょうどのレートであればそれほど変動はないとは思います。

 

さいごに

厳密な数値算出には過去の履歴を参照するような処理を行う必要がありますが、
今回のように「軽い処理」で「概算を知る」には使える手法ではないでしょうか。

なにか参考になれば幸いでございます。

それではまたー

 

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