見出し画像

最新の日本株価を 無料かつ高速で取得する 【Python】


<非公開目的の価格設定です>


これはなに

Python やらなんやらを使って、複数銘柄の株価分析をしたいことがよくあります。

そんなとき、米国株とかだと無料のAPI がいくつかあって、それをポンッと叩くだけでよいのですが、日本株ではどうしたらよいものか中々わからず、調べてできるようにしました。

目標
複数銘柄の最新時系列(日足)データを取得し、
ひとつのデータフレームで返す。


どうやるか

というと、

API
+
スクレイピング

の合わせ技で行います。

余談ですが、日本株の無料API 情報は、調べ方によっては中々出てこないんですよね。なので、ここが今回の課題の肝となる所だと思っています。

それでは、それぞれの実装方法を見ていきましょう。


API 部分

API は、pandas-datareader を使います。
データソースは、Stooq というポーランドのサイトです。

例えば、ソニー(6758)の株価を取得したい場合はこう書きます。

import pandas_datareader.data as web

web.DataReader('6758.JP', 'stooq')

今回は、複数銘柄の時系列データを取得することを目標としているので、銘柄コードのリストを作成して、それを一気にAPI に投げます。

l = [6758, 6501, 6752]    # ソニー、日立製作所、パナソニック

web.DataReader([str(c) + '.JP' for c in l], 'stooq')

すると、このような日次集計されたデータフレームが返ってきます。

スクリーンショット 2020-01-27 22.11.13

Stooq のAPI は期間指定ができず、すべて 2010/01/04 からのデータになってしまうのが少し残念ですが、無料なので仕方ないです。

また、最新のデータは翌立会日以降となるので、週末は基本的に木曜日までのデータしかありません。

土日祝日にじっくり分析しようにも、最新の株価が得られないのではちょっとモヤモヤしますよね。

ということで、最新のデータはスクレイピングで取ってきて、上で得られたデータにくっつけてしまおうとなります。


スクレイピング 部分

ここから先は

1,751字 / 2画像

¥ 10,000

この記事が気に入ったらサポートをしてみませんか?