以前作成した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()
コメント