LoginSignup
8
14

More than 5 years have passed since last update.

Pythonで日経平均株価を取得します

Last updated at Posted at 2019-02-12

はじめに

Pythonで、Webスクレイピングにより、日経平均株価を取得します。
Webスクレイピングとは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のことを指します。

なお、本方法は、2019/2/12時点で実現可能であることを確認しましたが、Pythonのモジュールの仕様変更や、ホームページの仕様変更により、取得できなくなる可能性があります。

Webスクレイピング方法

Yahooの日経平均株価のページをChromeで開いたら、空白部分で右クリックして、「ページのソースを表示」でHTMLデータを表示させます。
そして、株価が表示されている部分を探します。(ここでは、日経平均株価で検索しました)

<table class="stocksTable" summary="株価詳細">
<tr>
<th class="symbol"><h1>日経平均株価</h1></th>
<td class="stoksPrice realTimChange">
<div class="realTimChangeMod">
</div>
</td>
<td class="stoksPrice">20,864.21</td>

<td class="change"><span class="yjSt">前日比</span><span class="icoUpGreen yjMSt">+531.04(+2.61%)</span></td>

</tr>
</table>

<td class="stoksPrice">20,864.21</td>のように、class属性stoksPriceに、株価が記述されていることがわかりました。
class属性を条件に要素を取得するためには.クラス名のように指定します。
そして、どのパラメーターを参照すれば日経平均株価の値が取得できるか確認します。

ここでは、PythonのIDEであるPyCharmのデバッグを使用する方法を用いました。

[手順]

(1) PyCharm上でコードを記載
(2) stoksPrice = bs.select('.stoksPrice')のところにブレークポイントをセット
(3) プログラムをデバッグモードでスタートさせて、ブレークポイントで停止させ、1行コードを進めて、stoksPrice 変数の中身を確認
(4) [1].textの要素に株価情報があることを確認したので、コードに反映させる

import urllib.request as request
from bs4 import BeautifulSoup

def get_stock_price(url):
    response = request.urlopen(url)
    bs = BeautifulSoup(response, 'html.parser')
    stoksPrice = bs.select('.stoksPrice')[1].text
    return stoksPrice


url = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=998407.O'
result = get_stock_price(url)
print(f'日経平均株価は{result}円です。')

url2 = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=8411.T'
result = get_stock_price(url2)
print(f'みずほ銀行の株価は`{result}円です。')
日経平均株価は20,864.21円です。
みずほ銀行の株価は173.4円です。

感想

PyCharmを使った方法以外に、もっと簡単に取得したいパラメーターの要素を取得する方法があるかもしれません。方法があれば、展開したいと思います。

8
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
14