
Yahoo!ファイナンスの時系列のCSVファイル
Yahoo!ファイナンスの株式の時系列のWebページにはCSVファイルのダウンロード機能があります。
便利な機能ですが、この機能はVIP倶楽部の有料会員の限定機能なので無料会員では使えません。
時系列のCSVファイルをダウンロードするためだけに月額2,838円の有料会員に登録する人はほとんどいないでしょう。
しかし、以降の手順を使用すれば無料会員でも時系列のCSVファイルをダウンロードできます。
無料でCSVファイルをダウンロードする方法
やり方はまず、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ファイルをダウンロードしました。')

ダウンロードした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ファイルをダウンロード可能です。

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ファイルをダウンロードできるようにすれば、詳細なデータを元に精度の高い解析ができるようになります。