![見出し画像](https://assets.st-note.com/production/uploads/images/18467045/rectangle_large_type_2_bbcb0f86cc017d4357db504783eeace4.jpeg?width=1200)
最新の日本株価を 無料かつ高速で取得する 【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')
すると、このような日次集計されたデータフレームが返ってきます。
Stooq のAPI は期間指定ができず、すべて 2010/01/04 からのデータになってしまうのが少し残念ですが、無料なので仕方ないです。
また、最新のデータは翌立会日以降となるので、週末は基本的に木曜日までのデータしかありません。
土日祝日にじっくり分析しようにも、最新の株価が得られないのではちょっとモヤモヤしますよね。
ということで、最新のデータはスクレイピングで取ってきて、上で得られたデータにくっつけてしまおうとなります。
スクレイピング 部分
ここから先は
1,751字
/
2画像
¥ 10,000
この記事が気に入ったらサポートをしてみませんか?