Python:coinbase.comのサイトのビットコイン価格をチェックする

ラズパイ:Pythonでビットコイン相場をしゃべらせる Python

以前作成したPythonのプログラム(以下)が動作しなくなったため新たに作成。

プログラムに関して
最終的に変数btcには、整数値としてビットコイン価格が取得される。もし、小数点以下も含めた実数で取得したい場合は、btc = int(float(btc))の部分をbtc = float(btc)に変更してください。

2019年12月16日現在、bitflyerのサイトからは、ビットコイン価格は表示されてはいるが、HTMLコードで取得できなくなっている。

ビットコイン価格を取得して表示するバージョン

checkBTC.py

# -*- coding: utf-8 -*-

'''
	coinbase.comのサイトのビットコイン価格をチェックする
'''
import urllib.request
from bs4 import BeautifulSoup
import sys, os
import re

# coinbase.comのサイトURL
url = "https://www.coinbase.com/"

# ブラウザからのアクセスに偽装するためユーザエージェントを偽装
# 		以下のエージェント文字例はMac bookでChromeブラウザを使った例
headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36)" }

# HTMLデータを取得する
req = urllib.request.Request(url, None, headers)
response = urllib.request.urlopen(req)
html=response.read().decode('utf-8')

# HTMLをBeautifulSoupに渡して解析
soup = BeautifulSoup(html, 'html.parser')

# ビットコイン価格部分のタグから文字列を取得
btc = soup.find("td", class_="AssetTableRow__Column-bzcx4v-2 AssetTableRow__PriceColumn-bzcx4v-7 kcCGXM")
btc = btc.find("h4", class_="AssetTableRow__StyledHeader-bzcx4v-13 AssetTableRow__StyledHeaderDark-bzcx4v-15 hgGcEi Header__StyledHeader-sc-1xiyexz-0 jKklfu TextElement__Spacer-hxkcw5-0 caIgfs").text

# 文字列を整形(\824,529.82 --> 824529)
btc = btc.replace(chr(165), "")
btc = btc.replace(",", "")
#btc = int(float(btc))
btc = float(btc)
# しゃべるための文字列に変える
show_string = "現在のビットコイン価格は、{0}円です".format(btc)

# 画面に表示
print(show_string)

AquesTalkPiを使ってしゃべらせるバージョンはこちら

talkBTC.py

# -*- coding: utf-8 -*-

'''
	coinbase.comのサイトのビットコイン価格をチェックしてしゃべる
'''
import urllib.request
from bs4 import BeautifulSoup
import sys, os
import re

# AquesTalkの実行パス
aq_pass = "sudo /home/pi2/aquestalkpi/AquesTalkPi "

# coinbase.comのサイトURL
url = "https://www.coinbase.com/"

# ブラウザからのアクセスに偽装するためユーザエージェントを偽装
# 		以下のエージェント文字例はMac bookでChromeブラウザを使った例
headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36)" }

# HTMLデータを取得する
req = urllib.request.Request(url, None, headers)
response = urllib.request.urlopen(req)
html=response.read().decode('utf-8')

# HTMLをBeautifulSoupに渡して解析
soup = BeautifulSoup(html, 'html.parser')

# ビットコイン価格部分のタグから文字列を取得
btc = soup.find("td", class_="AssetTableRow__Column-bzcx4v-2 AssetTableRow__PriceColumn-bzcx4v-7 kcCGXM")
btc = btc.find("h4", class_="AssetTableRow__StyledHeader-bzcx4v-13 AssetTableRow__StyledHeaderDark-bzcx4v-15 hgGcEi Header__StyledHeader-sc-1xiyexz-0 jKklfu TextElement__Spacer-hxkcw5-0 caIgfs").text

# 文字列を整形(\824,529.82 --> 824529)
btc = btc.replace(chr(165), "")
btc = btc.replace(",", "")
btc = int(float(btc))

# しゃべるための文字列に変える
talk_string = "現在のビットコイン価格は、{0}円です".format(btc)

# 画面に表示
print(talk_string)

# しゃべる
cmd = aq_pass + talk_string + " | aplay"
result = os.popen(cmd).readline().strip()

コメント

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