Yahoo!ファイナンスの時系列のCSVを無料でダウンロードする方法

Yahoo!ファイナンスの時系列のCSVファイル

Yahoo!ファイナンスの株式の時系列のWebページにはCSVファイルのダウンロード機能があります。

便利な機能ですが、この機能はVIP倶楽部の有料会員の限定機能なので無料会員では使えません。

時系列のCSVファイルをダウンロードするためだけに月額2,838円の有料会員に登録する人はほとんどいないでしょう。

しかし、以降の手順を使用すれば無料会員でも時系列のCSVファイルをダウンロードできます。

無料でCSVファイルをダウンロードする方法

やり方はまず、Yahoo!ファイナンスの任意の時系列のWebページを表示します。

Yahoo!ファイナンスの任意の時系列のWebページ

https://finance.yahoo.co.jp/quote/2502.T/history

時系列のWebページを表示したら、デベロッパーツールのConsoleを開きます。

デベロッパーツールはChromeなら「表示 → 開発/管理 → デベロッパーツール」、

Microsoft Edgeなら「表示 → 開発者 → 開発者ツール」で開けます。

デベロッパーツールを開いたらConsoleに以下のコードを貼り付けて実行すれば、表示している時系列のCSVファイルがダウンロードされます。

const table = $('table')
const tableTr = table.querySelectorAll('tr')
const rows = Array.from(tableTr).map(tr =>
  Array.from(tr.querySelectorAll('th, td')).map(td =>
    td.innerText.trim()
  )
)
const csvContent = rows.map(row =>
  row.map(value => `"${String(value).replace(/"/g, '""')}"`).join(',')
).join('\n')
const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' })
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = document.title.split('')[0]
a.click()
URL.revokeObjectURL(url)
console.log('✅ CSVファイルをダウンロードしました。')
Yahoo!ファイナンスの時系列のCSVを無料でダウンロードする方法

ダウンロードしたCSVファイルの中身は以下のようになっています。

"日付","始値","高値","安値","終値","出来高","調整後終値*"
"2025年10月17日","1,706","1,726","1,699","1,726","10,643,000","1,726"
"2025年10月16日","1,705","1,714","1,696","1,705","10,320,000","1,705"
// 中略
"2025年9月19日","1,783.5","1,799.5","1,773.5","1,780","7,520,200","1,780"
"2025年9月18日","1,815.5","1,820.5","1,790","1,790","5,918,000","1,790"

GMOクリック証券などのCSVもダウンロード可能

前述のJavaScriptのコードは時系列のテーブルをCSVのデータ形式に変換してダウンロードするものなので、テーブルの要素が取得できていれば他のWebサイトの時系列のデータでもCSVファイルをダウンロードできます。

例えば、GMOクリック証券の場合は以下のコードを実行すればCSVファイルをダウンロード可能です。

GMOクリック証券の時系列データ
const tableHead = $$('table')[2].querySelectorAll('tr')
const tableBody = $$('table')[3].querySelectorAll('tr')
const rowsHead = Array.from(tableHead).map(tr =>
  Array.from(tr.querySelectorAll('th, td')).map(td =>
    td.innerText.trim()
  )
)
const rowsBody = Array.from(tableBody)
  .slice(1)
  .map(tr =>
    Array.from(tr.querySelectorAll('th, td')).map(td =>
      td.innerText.trim()
    )
  )
const rows = [...rowsHead, ...rowsBody]
const csvContent = rows.map(row =>
  row.map(value => `"${String(value).replace(/"/g, '""')}"`).join(',')
).join('\n')
const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' })
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = document.title + '.csv'
a.click()
URL.revokeObjectURL(url)
console.log('✅ CSVファイルをダウンロードしました。')

ダウンロードしたCSVファイルの中身は以下のようになっています。

"日付","始値","高値","安値","終値","前日比","出来高(株)"
"2025/10/17","1,706","1,726","1,699","1,726","+21","10,643,000"
"2025/10/16","1,705","1,714","1,696","1,705","-11","10,320,000"
// 中略
"2025/07/04","1,917.5","1,938","1,915","1,929","-11","5,609,800"
"2025/07/03","1,956","1,965","1,939.5","1,940","-","4,630,600"

株式において時系列のデータは解析する上で重要な指標であり、生成AIなどに読み込ませる際にもCSVファイルだと解析しやすくなります。

そのため、株式を解析して売買をしている人は、時系列のCSVファイルをダウンロードできるようにすれば、詳細なデータを元に精度の高い解析ができるようになります。