19日に更新してた

アフィリエイトはないよ

【Python】東証上場銘柄一覧を利用して効率的にYahoo!ファイナンスVIPクラブ CSVのダウンロードリストを作成する方法

python を使って Yahoo! ファイナンス VIP クラブの csv をダウンロードする方法を検索すると、それに関する記事がいくつかあるのですが、コード番号を range で総当りしているものが散見されます。存在しないコードを入力すると時間の無駄ですし、Yahoo! の方も無駄な資源を遣うことになります。

公表されているコードリストを入れてやれば無駄が少ないのではないか?ということで、日本取引所グループのサイトで東証上場銘柄一覧というものが毎月更新されています。それを、使ってコードのリストを作りましょう。

www.jpx.co.jp

ただ、東証上場銘柄一覧に出ているものが全て Yahoo! ファイナンスで情報公開されているかを python & jupyter-notebook で確認すると

import pandas as pd

data = pd.read_excel("https://www.jpx.co.jp/markets/statistics-equities/misc/tvdivq0000001vg2-att/data_j.xls")
data["市場・商品区分"].unique()

ででてくる

array(['プライム(内国株式)', 'ETF・ETN', 'スタンダード(内国株式)', 'グロース(内国株式)', 'PRO Market', 'プライム(外国株式)', 'REIT・ベンチャーファンド・カントリーファンド・インフラファンド', 'スタンダード(外国株式)', 'グロース(外国株式)', '出資証券'], dtype=object)

を一つづつエクセルでもダウンロードしておいた上記エクセルに検索をかけ、最初に当たった部分のコード番号を Yahoo!ファイナンスで検索すると、上のリストのうち 'PRO Market' だけは検索しても情報が出てきませんので、

import pandas as pd

data = pd.read_excel("https://www.jpx.co.jp/markets/statistics-equities/misc/tvdivq0000001vg2-att/data_j.xls")
code = data[data["市場・商品区分"]!='PRO Market']["コード"].tolist()

くらいでコードを選んで code を for 文で回してやると、エラー率がかなり下がり、ダウンロード時間も短縮できると思います。