SW履歴を取得する
このSW履歴を取得する。
https://www.sbifxt.co.jp/fxtaccount/pc/SWHis
参考:
JavaScriptでHtmlのtable要素をCSVに変換する
https://ateraimemo.com/JavaScript/table2csv.html
var downloadAsTextFile = function(fileName, content) { var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var blob = new Blob([bom, content]); var url = window.URL || window.webkitURL; var blobURL = url.createObjectURL(blob); var a = document.createElement('a'); a.download = fileName; a.href = blobURL; a.click(); }; var downloadAsCSVFile = function(fileName, rows) { var content = ""; for( var i in rows) { var ary = rows[i]; for (var j = 0, m = ary.length; j < m; ++j) { content += '"' + ("" + ary[j]).replace('"', '""') + '"'; if (j !== m) { content += ','; } } content += '\n'; } downloadAsTextFile(fileName, content); }; var table2array =function(table) { var array = []; var tr = table.getElementsByTagName('tr'); for(var i = 0; i < tr.length; ++i) { //前行のセルのcolspanで、すでにこの行は初期化されている場合がある array[i] = array[i] || []; var cells = tr.item(i).cells; for(var j = 0; j < cells.length; ++j) { var td = cells.item(j); //タグの削除、タブをスペースに置換、両側trim、ダブルクオートの二重化 var text = td.innerHTML.replace(/<.*?>/mg, '').replace(/\t/g,' ').replace(/(^\s+)|(\s+$)/g, '').replace(/\"/, '""'); //前の行のrowspanですでにこのセルが使用されている場合はxoffだけ移動 var xoff = 0; while(array[i][j + xoff] != null) { ++xoff; } array[i][j + xoff] = text; for(var k = 1; k < td.colSpan; ++k) { array[i][j + xoff + k] = text; } for(var l = 1; l < td.rowSpan; ++l) { array[i + l] = array[i + l] || []; for(var k = 0; k < td.colSpan; ++k) { array[i + l][j + xoff + k] = text; //同文字列 '〃'; } } } } return array; }; function getSW(form, queries) { var q = queries.pop(); if(!q) return; console.log(q.y + "_" + q.m, q.q); $.ajax({ url: form.attr('action'), type: form.attr('method'), data: q.q, success: function(res) { var table = $(res).find("table").get(0); console.log(table); if(table) { downloadAsCSVFile("sw_" + q.y + "_" + q.m + ".csv", table2array(table)); } setTimeout(function() { getSW(form, queries);}, 1000); } }); } var form = $("form"); var year = $("[name=YEAR] option", form); var month = $("[name=MONTH] option", form); var queries= []; year.map(function() { return this.text; }).each(function(i, y) { month.map(function() { return this.text; }).each(function(i, m) { year.val(y); month.val(m); queries.push({y: y, m: m, q: $("form").serialize()}); }); }); getSW(form, queries);