Python3.6で「Beautiful Soup」と「Requests」の2つのライブラリを利用して
「日本経済新聞」のHPから「日経平均株価」を取得してみました。
#環境
Windows10(64bit)
Internet Explorer11
Python 3.6.4
pip 10.0.1
#使用するライブラリ
Beautiful Soup
Requests
#ライブラリインストール
pip install BeautifulSoup4
pip install Requests
#インストールの確認
Package Version
-------------- ---------
beautifulsoup4 4.6.0
requests 2.18.4
#取得したい対象の確認
「日本経済新聞」のHPを開きます。
トップページの上に「日経平均」を確認できます。
Internet Explorerで「日経平均」のところで右クリックし「要素の検査」をクリックします。
すると「開発者ツール」が立ち上がり、今回取得したい対象が
span要素でClass="m-miH01C_rate"となっていることが分かります。
#必要な処理の確認
①ライブラリのインポート
②requestsを利用してHTMLを取得
③取得したHTMLからBeautifulSoup4を利用してHTMLパースを取得
④取得したHTMLパースから「span」要素を取得する。
⑤「span」要素の中のclass「m-miH01C_rate」を取得する。
#コーディング
#日経平均平均株価
nikkei_heikin = ""
#①インポートします。
import requests
from bs4 import BeautifulSoup
#②HTMLを取得します。
url = 'https://www.nikkei.com/'
html = requests.get(url)
#③HTMLパース用のオブジェクトを作成します。
soup = BeautifulSoup(html.text,"html.parser")
#④「span」要素全て抽出します。
span = soup.find_all("span")
#⑤「span」要素をループします。
for tag in span:
try:
#⑥「span」要素から「class」をpopしていきます。
string_ = tag.get("class").pop(0)
#⑦摘出したclassの文字列にm-miH01C_rateが設定されているかチェックします。
if string_ in "m-miH01C_rate":
#⑧tagの文字列(日経平均株価)を取得します。
nikkei_heikin = tag.string
#⑨ループ処理を中断します。
break
except:
#⑥'「span」要素から「class」をpopできなかった場合何もしません。
pass
#⓾取得した日経平均株価を出力します。
print(nikkei_heikin)
#実行
C:\>python kabuka.py
22,467.87
「日経平均株価」を取得することができました。