インフルエンザが流行っていますが、プログラミングの世界ではPythonが流行りですね。武田です。
当学院では学生の記入する日誌に円相場記入欄があります。
今日はPythonを使ってYahoo!のサイトから円相場を取得して表示するプログラムを作ってみます。
と、言っても以下の短いプログラムです。
# -*- coding: utf-8 -*- import urllib.request from bs4 import BeautifulSoup # BeautifulSoup4をインポート # Yahooの円相場表示URL url = "https://info.finance.yahoo.co.jp/fx/detail/?code=usdjpy" # サイトからデータ取得 data = urllib.request.urlopen(url) # HTMLをプログラムから扱えるように変換 soup = BeautifulSoup(data, 'html.parser') # 特定のタグのデータを抽出(ddタグのidがUSDJPY_detail_bidの部分) usdjpy = soup.find("dd", id="USDJPY_detail_bid") # テキスト部分のみ表示 print("1ドル = {0}円".format(usdjpy.text) )
実行結果はこんな感じです。(Windowsのコマンドプロンプトで実行)
スクレイピングによく利用されるbeautifulsoup4を使っています。
ちなみにスクレイピングとは、Webサイトから必要な情報だけ抽出するソフトウエア技術のことです。
Pythonをインストールしてもbeautifulsoup4は標準でインストールされませんので、Pythonをインストール後、ターミナルから、
pip install beautifulsoup4
を実行してbeautifulsoup4をインストールしてください。
今回円相場情報を知るために利用したサイトは以下のサイトです。
米ドル/円 – FXレート・チャート – Yahoo!ファイナンス
このサイトは、こんな感じで表示されます。
赤丸の部分が取得したい円相場です。ここからどうやって必要な情報を抜き出すかと言うと、まずはCtrl + UキーでこのサイトのHTMLソースコードを表示させます。
ここからは自分で探し出すしかないのですが、わたしが見たところddタグのidがUSDJPY_detail_bidの部分が該当する円相場でした。このように取得したいデータが特定できるようならスクレイピングは簡単です。
プログラムでは以下の部分がデータを抽出している部分です。
# 特定のタグのデータを抽出(ddタグのidがUSDJPY_detail_bidの部分) usdjpy = soup.find("dd", id="USDJPY_detail_bid")
ddタグ、とid名称USDJPY_detail_bidが指定されているのが分かるでしょうか。
こうやって自分で探し出すのは、隠された財宝をみつけるとまでは言いませんがけっこう面白いものです。
以上、PythonでYahoo!のサイトから円相場を取得して表示するプログラムでした。
Python面白いですよ!