Skip to content

Instantly share code, notes, and snippets.

@mironal
Created February 21, 2022 13:02
Show Gist options
  • Save mironal/632a0de1379c3fd4410f396d690d6ce3 to your computer and use it in GitHub Desktop.
Save mironal/632a0de1379c3fd4410f396d690d6ce3 to your computer and use it in GitHub Desktop.
くらし TEPCO の指定した日付の範囲の30分毎データの csv をダウンロードするやつ
/*
1. startDay, endDay を編集する
2. ログインする: https://www.kurashi.tepco.co.jp/pf/ja/pc/mypage/learn/comparison.page
3. 2 のページで Chrome DevTools を開いてコードをコピペして実行する
概念: ダウンロード用の a タグを作ってマウスクリックを発火させてダウンロードしている.
*/
// includes start, end day
function getDays(start, end) {
const days = []
let current = new Date(start.getTime())
while(current <= end) {
days.push(new Date(current.getTime()))
current.setDate(current.getDate() + 1)
}
return days
}
function downloadCsv(day) {
const a = document.createElement("a")
a.href = `https://www.kurashi.tepco.co.jp/pf/ja/pc/mypage/learn/comparison.page?ReqID=CsvDL&year=${day.getFullYear()}&month=${day.getMonth() + 1}&day=${day.getDate()}`
const ev = document.createEvent("MouseEvents")
ev.initMouseEvent("click", true, false, window, 0,0,0,0,0, false, false, false, 0, null)
a.dispatchEvent(ev)
}
// ダウンロードしたいデータの開始日(この日のデータもダウンロードされます)
// 例: 2020/1/1
const startDay = new Date(2020, 0, 1) // 月は 0始まり
// ダウンロードしたいデータの終了日(この日のデータもダウンロードされます)
const endDay = new Date(2022, 1,20)
const days = getDays(startDay, endDay)
console.log("Start download from", startDay.toLocaleString(), "to", endDay.toLocaleString())
console.log(days.length, "days")
for (const day of days) {
await new Promise(r => setTimeout(r, 5000)) // 思いやりの 5000msec
console.log("download for", day.toLocaleString())
downloadCsv(day)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment